mysql 5.6 关于一个时间字段的数据更新引发的sql异常

数据库字段end_date 为timestamp类型 我发现更新到2038年份的日期就会报错 报错信息如下:

Error updating database. Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '2038-02-25 15:09:03' for column 'end_date' at row 1


The error may involve UsersMapper.UpdateCodes-Inline
The error occurred while setting parameters
SQL:
UPDATE users set codes=?,end_date=date_add(IFNULL(end_date,NOW()), interval ? DAY),type=1,begin_date=NOW() WHERE id=?


Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '2038-02-25 15:09:03' for column 'end_date' at row 1

1个回答

看你用的是什么类型,对于32bit存储的timestamp,2038年会超过最大值上溢。换支持的类型

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复鱼被吃了: 也可以是64bit
7 个月之前 回复
qy_0626
鱼被吃了 我明白了 十分感谢:)
7 个月之前 回复
qy_0626
鱼被吃了 回复贵阳挖掘机马善福自备车辆专业挖游泳池: 我明白了 刚才没理解什么意思,您是指timestamp是一种32bit存储的数据类型 对吗
7 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复鱼被吃了: 看你end_date这个数据类型
7 个月之前 回复
qy_0626
鱼被吃了 请教一下,什么是32bit存储的timestamp,我该如何看这个类型?
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mysql5.6以下怎么查询指定字段中json中的值
数据库中有个order_collection_fee字段,这个字段中是以一个json:{"serfee":0.015,"fee":54}怎么可以查询到json里serfee的值;mysql是5.6以下的,表名ods_odsers
【求助】MySQL8.0根据银行流水日记账统计日报表的数据库设计方案。
如题,该需求为财务系统常见的日报表、余额表等报表查询统计,如何设计性能良好的查询方案(因获取不到财务软件的数据库,未能参考)。 方案需求说明:因流水数据较大,需考虑查询的性能。可新增其他表、辅助字段、触发器、索引优化等,MySQL版本为8.0新版,可使用窗口函数等特性 具体情况: 1、数据表结构(表字段使用中文只是为了粗暴地阅读,请忽略。。。): **流水表flows:** ![图片说明](https://img-ask.csdn.net/upload/201908/25/1566706255_179390.png) **2、需求的查询:2019-8-11至2019-8-12日的资金日报表,期初余额为截至10日当天的余额,期末余额为12日当天的余额** ![图片说明](https://img-ask.csdn.net/upload/201908/25/1566706278_692101.png) 流水表SQL ``` -- ---------------------------- -- Table structure for flows -- ---------------------------- DROP TABLE IF EXISTS `flows`; CREATE TABLE `flows` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `单位` varchar(255) DEFAULT NULL, `银行账户` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, `日期` date DEFAULT NULL, `收入` decimal(18,2) DEFAULT NULL, `支出` decimal(18,2) DEFAULT NULL, PRIMARY KEY (`ID`) ) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -- ---------------------------- -- Records of flows -- ---------------------------- INSERT INTO `flows` VALUES ('1', 'A', 'A01', '2019-07-15', '300.00', '0.00'); INSERT INTO `flows` VALUES ('2', 'A', 'A01', '2019-07-30', '0.00', '120.00'); INSERT INTO `flows` VALUES ('3', 'A', 'A01', '2019-08-01', '0.00', '70.00'); INSERT INTO `flows` VALUES ('4', 'A', 'A01', '2019-08-03', '99.00', '0.00'); INSERT INTO `flows` VALUES ('5', 'A', 'A01', '2019-08-11', '0.00', '77.00'); INSERT INTO `flows` VALUES ('6', 'A', 'A01', '2019-08-22', '0.00', '55.00'); INSERT INTO `flows` VALUES ('7', 'A', 'A01', '2019-08-25', '88.00', '0.00'); INSERT INTO `flows` VALUES ('8', 'A', 'A01', '2019-08-26', '0.00', '90.00'); INSERT INTO `flows` VALUES ('9', 'A', 'A02', '2019-07-02', '60.00', '0.00'); INSERT INTO `flows` VALUES ('10', 'A', 'A02', '2019-07-30', '0.00', '35.00'); INSERT INTO `flows` VALUES ('11', 'B', 'B01', '2019-08-10', '365.00', '0.00'); INSERT INTO `flows` VALUES ('12', 'B', 'B01', '2019-08-12', '98.00', '0.00'); ```
帮忙判断下这种业务场景适合使用什么类型的数据库
1. 共有约70个业务. 2. 这些业务中约有8个公共字段 3. 每个业务除公共字段外还有5-20个与其他业务不同的字段 4. 比如 业务 1 有字段如下 公共字段(渠道, 大小..) 自有字段 : 姓名, 身份证, 性别.. 业务 2 有字段如下 公共字段(渠道, 大小..) 自由字段 : 颜色, 长度, 宽度... 5. 目前的解决方案是一个业务放到一张表中, 只统计了五个业务, 使用了五张表 但随着业务量增多表的数量也将增多到70个 6. 使用mongodb这种nosql的数据库可否 ? 前辈说Nosql只适合简单数据模型的数据 7. 或者hadoop等..? PS. 每天各种业务加起来的数据量约5万条.
如何在SQLServer中将包含日期时间类型的数据离整点正负5分钟的时间分到同一组内
时间 PM2.5 PM10 CO NO2 SO2 O3 风速 压强 降水量 温度 湿度 2018/11/14 10:02 50 98 0.8 62 15 46 0.5 1020.6 89.8 15 65 2018/11/14 10:57 43 87 0.7 55 16 59 0.9 1020 89.8 17 57 2018/11/14 10:58 41 83 0.8 55 15 56 2 1019.9 89.8 17 57 2018/11/14 11:02 41 81 0.7 46 15 58 0.7 1019.7 89.8 17 58 2018/11/14 11:59 46 91 0.8 43 16 67 1.4 1018.5 89.8 18 52 2018/11/14 12:00 46 89 0.7 41 16 70 1.5 1018.5 89.8 18 52 2018/11/14 12:04 43 84 0.8 40 15 74 1.2 1018.5 89.8 18 53 2018/11/14 12:58 42 85 0.7 46 15 63 1.6 1018 89.8 18 50 。。。 这张表中第一个字段“时间”内有很多时间数据离得太近。 比如: 2018/11/14 10:57 43 87 0.7 55 16 59 0.9 1020 89.8 17 57 2018/11/14 10:58 41 83 0.8 55 15 56 2 1019.9 89.8 17 57 2018/11/14 11:02 41 81 0.7 46 15 58 0.7 1019.7 89.8 17 58 10:57、10:58、11:02,这些时间都在11:00的正负5分钟范围内,采集的数据也比较接近 现在想这样处理一下:就是按时间分组,将离整点正负5分钟的时间分到同一组内,然后计算分组内的PM2.5、PM10等字段的平均值 请教大神如何在SQLSer'ver数据库中用SQL解决这个问题?
POCO C++库操作MySQL的Blob字段,SELECT * 就崩溃了,求破。
表里有一个Blob字段,主要用来插入5MB以下的图片,SQL语句是这样的: SELECT * FROM message WHERE id="uuid"; 如果不存在就直接INSERT,否则就UPDATE. 使用POCO C++库执行时,当执行 statement.execute()方法就崩溃了,并且try{}catch(...)都无法捕获到,直接挂了。 多数情况下是工作正常的,一般执行上次左右吧就会出现一次。 MYSQL使用的是5.6,5.7也试了,都有。 但是如果使用 SELECT id FROM message WHERE id="uuid"的SQL语句,出现崩溃概率就会降低很多,但依然存在。 求破。
请教mysql统计每天平均值进行运算问题
用一个数据表统计温度来计算积温问题。 例如:昨天有五个温度值:10.4,10.6,10.8,10.9,11.0,今天统计三个温度:8.2,6.7,5.4。设一个特定值为5. 则从昨天到今天的积温就是:((10.4+10.6+10.8+10.9+11.0)/5-5)+((8.2+6.7+5.4)/3-5),依次类推。 sql语句应该怎么写?求教 现有数据表结构如下图,time是时间字段,ch01为数据: ![图片说明](https://img-ask.csdn.net/upload/201601/24/1453624419_29139.png)
mysql 找错 ,能够更新其他字段,只有describe更新失败
错误信息 mysql> update t_project_type set describe='aaa' where id='2'; 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'describe='aaa' where id='2'' at line 1 表信息 CREATE TABLE `t_project_type` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, `typeName` varchar(50) DEFAULT NULL, `projProp` tinyint(4) DEFAULT NULL, `addTime` char(19) DEFAULT NULL, `describe` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; mysql 版本 mysql> select version(); +------------+ | version() | +------------+ | 5.5.35-log | +------------+
PHP 导入.csv文件到mysql数据库的问题:
最近做一个PHP导入csv文件数据到mysql数据库的项目,做好了后测试是没有问题的,测试的时候都是小文件,最大1M的csv文件都没问题,但是今天突然来了个5M多,5w多条数据的csv文件,就一直说是取不到文件名,不然就是解析不到数据,求大神看看,要说代码有问题,但是小文件都可以上传,遇到大文件就歇菜了, 报错: fgetcsv() expects parameter 1 to be resource, boolean given in 以下是我的处理代码, ``` $filename = $_FILES['file']['tmp_name']; $handle = fopen($filename, 'r'); $result = input_csv($handle); //解析csv $len_result = count($result); if($len_result==0){ echo '没有任何数据!'; exit; } $data_values=null; for ($i = 1; $i < $len_result; $i++) { //循环获取各字段值 $mac = $result[$i][1]; //中文转码 $int1= $result[$i][2]; $field = $result[$i][3]; $channel = $result[$i][4]; $int2= $result[$i][5]; $sta = $result[$i][6]; $int3 = $result[$i][7]; $int4= $result[$i][8]; $int5= $result[$i][9]; $time1 = $result[$i][10]; $time2 = $result[$i][11]; $time3 = $result[$i][12]; $time4 = $result[$i][13]; $hostmac =$result[$i][14]; //中文转码 $data_values .= "('$mac',$int1,$field,$channel,$int2,$sta,$int3,$int4,$int5,FROM_UNIXTIME($time1),FROM_UNIXTIME($time2),FROM_UNIXTIME($time3),FROM_UNIXTIME($time4),'$hostmac'),"; // $sql = "insert into macdata (m_mac,m_int1,m_field,m_channel,m_int2,m_sta,m_int3,m_int4,m_int5,m_time1,m_time2,m_time3,m_time4,m_hostmac) values ('$mac',$int1,$field,$channel,$int2,$sta,$int3,$int4,$int5,FROM_UNIXTIME($time1),FROM_UNIXTIME($time2),FROM_UNIXTIME($time3),FROM_UNIXTIME($time4),'$hostmac')";//批量插入数据表中 // $result2 = $conn->query($sql); // if($result2){ // echo '导入成功!'; // }else{ // echo '导入失败!'; // } } $data_values = substr($data_values,0,-1); //去掉最后一个逗号 fclose($handle); //关闭指针 $sql = "insert into macdata (m_mac,m_int1,m_field,m_channel,m_int2,m_sta,m_int3,m_int4,m_int5,m_time1,m_time2,m_time3,m_time4,m_hostmac) values $data_values";//批量插入数据表中 $result2 = $conn->query($sql); if($result2){ echo '<script>window.location.href = "Mactest.php";alert("导入成功!")</script>'; }else{ echo '<script>window.location.href = "Mactest.php";alert("导入失败,请重试!")</script>'; } function input_csv($handle) { $out = array (); $n = 0; while ($data = fgetcsv($handle,100000)) { $num = count($data); for ($i = 0; $i < $num; $i++) { $out[$n][$i] = $data[$i]; } $n++; } return $out; } ```
JSP从数据库MySQL取出经纬度数据,怎么能够在百度地图上描绘出轨迹
<%@ page contentType="text/html; charset=utf-8" %> <%@ page language="java" %> <%@ page import="com.mysql.jdbc.Driver" %> <%@ page import="java.sql.*" %> <% String driverName="com.mysql.jdbc.Driver";//驱动程序名 String userName="root";//数据库用户名 String userPasswd="qwe";//密码 String dbName="test";//数据库名 String tableName="location";//表名 //联结字符串 String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd; Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection connection=DriverManager.getConnection(url); Statement statement = connection.createStatement(); String sql="SELECT * FROM "+tableName; ResultSet rs = statement.executeQuery(sql); int size = rs.getRow();//数据行数 ResultSetMetaData rmeta = rs.getMetaData();//获得数据结果集合 int numColumns=rmeta.getColumnCount();//确定数据集的列数,亦字段数 //输出每一个数据值 out.print(size+" "); out.print("<br>"); while(rs.next()) { out.print(rs.getString(1)+" ");//编号 out.print("|"); Double point1=rs.getDouble(4); Double point2=rs.getDouble(3); out.print(point1+" ");//输出经度 out.print(point2+" ");//输出纬度 out.print("<br>"); } %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;} #l-map{height:100%;width:78%;float:left;border-right:2px solid #bcbcbc;} #r-result{height:100%;width:20%;float:left;} </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.5&ak=2a8432fa52e468d4644b16afa735618e"></script> <title>折线</title> <body> <div id="allmap"></div> <script type="text/javascript"> var map = new BMap.Map("allmap"); var point = new BMap.Point(113.001,28.23540605); var p=document.from1.myhidden.value; map.centerAndZoom(point, 13); var polyline = new BMap.Polyline([ new BMap.Point(113.0051,28.2334), new BMap.Point(113.0031,28.2322), new BMap.Point(113.0041,28.23241) ], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});//这里的坐标需要从数据库获取!! 卡在这里了 map.addOverlay(polyline); </script> </body> </html>
百度地图从MySql中获取经纬度
<%@ page contentType="text/html; charset=utf-8" %> <%@ page language="java" %> <%@ page import="com.mysql.jdbc.Driver" %> <%@ page import="java.sql.*" %> <% String driverName="com.mysql.jdbc.Driver";//驱动程序名 String userName="root";//数据库用户名 String userPasswd="qwe";//密码 String dbName="test";//数据库名 String tableName="location";//表名 //联结字符串 String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd; Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection connection=DriverManager.getConnection(url); Statement statement = connection.createStatement(); String sql="SELECT * FROM "+tableName; ResultSet rs = statement.executeQuery(sql); int size = rs.getRow();//数据行数 ResultSetMetaData rmeta = rs.getMetaData();//获得数据结果集合 int numColumns=rmeta.getColumnCount();//确定数据集的列数,亦字段数 //输出每一个数据值 out.print(size+" "); out.print("<br>"); while(rs.next()) { out.print(rs.getString(1)+" ");//编号 out.print("|"); Double point1=rs.getDouble(4); Double point2=rs.getDouble(3); out.print(point1+" ");//输出经度 out.print(point2+" ");//输出纬度 out.print("<br>"); } %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;} #l-map{height:100%;width:78%;float:left;border-right:2px solid #bcbcbc;} #r-result{height:100%;width:20%;float:left;} </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.5&ak=2a8432fa52e468d4644b16afa735618e"></script> <title>折线</title> <body> <div id="allmap"></div> <script type="text/javascript"> var map = new BMap.Map("allmap"); var point = new BMap.Point(113.001,28.23540605); var p=document.from1.myhidden.value; map.centerAndZoom(point, 13); var polyline = new BMap.Polyline([ new BMap.Point(113.0051,28.2334), new BMap.Point(113.0031,28.2322), new BMap.Point(113.0041,28.23241) ], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});//这里的坐标需要从数据库获取!! 卡在这里了 map.addOverlay(polyline); </script> </body> </html>
菜鸟求助,如何用sql 查询出用户在当月,有那些天签到了(不用查连续的)
表名及字段:user_sign_in (user_id ,signin_time) 传参数 : Integer userId 返回:Integer[] [ 1,5,6,...... ] (返回数组,当月签到的日期)
sql大数据自关联查询优化
1. 一张表a,字段有date(日期),city(城市),area(区域),cl(期初人口数量),ml(期末人口数量),zl(增加的人口数量) 2. 只有当天zl有变动的时候才会有数据,如果不变动,则当天不记录 3. 表内容示例: 4. date city area cl ml zl 5. 2018-05-01 cc1 a11 100 99 -1 6. 2018-05-02 cc1 a12 200 205 5 7. 2018-05-02 cc2 a21 50 100 50 8. 2018-05-03 cc1 a11 99 140 51 9. 要查每一个区域的一定时间范围内的期初数量和期末数量,例:查2018-05-01至2018-05-03,cc1-a11的期初是100.期末是140,cc1-a12的期初是200,期末是205,cc2-a21的期初是50,期末是100 10. 找到两种方式查期初和期末:一是取最小日期和最大日期所在的日期,据日期取找值;二是自关联。目前因为数据量到2千万,查询速度很慢,寻找优化方案 11. 在线等,着急,谢谢!
使用Python 语句将excel 自动导入本地Mysql数据表, 显示执行完毕,但Mysql 数据表中没有找到纪录
各位高手好: 在尝试着把之前自己的工作纪录导进本机建立的Mysql 数据库中 网上找到了某大神的代码: 如连接: https://www.cnblogs.com/longbigbeard/p/9309180.html 运行代码后显示运行成功,如图: ![图片说明](https://img-ask.csdn.net/upload/201904/29/1556513570_328017.png) 然而,当在MySQL 表格中复查的时候,发现数据库表格为空值(如图) ![图片说明](https://img-ask.csdn.net/upload/201904/29/1556513709_711636.png) 要导入的excel 表格截图如下:(好遗憾,似乎CSDN不能添加excel作为附件) ![图片说明](https://img-ask.csdn.net/upload/201904/29/1556514157_409812.png) 仿写代码如下:高手们知道问题出在那里么? ``` import xlrd import pymysql import xlrd # 打开excel---------------------------------------------------------- def open_excel(): try: book = xlrd.open_workbook('C:/Users/lenovo/Desktop/工作纪录就靠它了.xlsx') #文件名,把文件与py文件放在同一目录下 except: print("open excel file failed!") try: sheet = book.sheet_by_name('ANZ纪录') #execl里面的worksheet1 return sheet except: print("locate worksheet in excel failed!") # 验证:open_excel 是跑的通的 #----------------------------------------------------------------- #连接数据库------------------------------------------------------- try: db = pymysql.connect(host='localhost',user="root", passwd='QAZwsx12345678', db='test', charset='utf8') except: print("could not connect to mysql server") # 验证:本机数据库连接 是跑的通的 #---------------------------------------------------------------- def search_count(): cursor = db.cursor() select = "select count(PN) from pn_infor" #获取表中xxxxx记录数 cursor.execute(select) #执行sql语句 line_count = cursor.fetchone() print(line_count[0]) #验证:search_count 是可以跑通的 #----------------------------------------------------------------- def insert_deta(): sheet = open_excel() cursor = db.cursor() for i in range(5, sheet.nrows): #前5行是标题名,对应表中的字段名所以应该从第6行开始,计算机以0开始计数,所以值是6 inidate = sheet.cell(i,0).value #取第i行第0列 initiation_date = xlrd.xldate_as_datetime(inidate,0) # 把数字型的日期解码成真正的日期 requestor = sheet.cell(i,1).value#取第i行第1列,下面依次类推 EB = sheet.cell(i,2).value EOL_By = xlrd.xldate_as_datetime(EB,0) # 把数字型的日期解码成真正的日期 customer_name = sheet.cell(i,3).value Type_of_Service = sheet.cell(i,4).value PN = sheet.cell(i,5).value description30 = sheet.cell(i,6).value description80 = sheet.cell(i,7).value Enable = sheet.cell(i,8).value CostUSD = sheet.cell(i,9).value CostAUD = sheet.cell(i,10).value ListpriceAUD = sheet.cell(i,11).value DistipriceAUD = sheet.cell(i,12).value print(initiation_date) print(requestor) print(EOL_By) print(customer_name) print(Type_of_Service) print(PN) print(description30) print(description80) print(Enable) print(CostUSD) print(CostAUD) print(ListpriceAUD) print(DistipriceAUD) print("---------------") value = (initiation_date,requestor,EOL_By,customer_name,Type_of_Service,PN,description30,description80,Enable,CostUSD,CostAUD,ListpriceAUD,DistipriceAUD) print(value) sql = "INSERT INTO pn_infor(initiation_date,requestor,EOL_By,customer_name,Type_of_Service,PN,description30,description80,Enable,CostUSD,CostAUD,ListpriceAUD,DistipriceAUD)VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" cursor.execute(sql,value) #执行sql语句 db.commit() cursor.close() #关闭连接 insert_deta() db.close()#关闭数据 print ("ok ") ```
HQL 问题 !!!
HQL支持 insert into 表名1 select * from 表名2 吗 [b]问题补充:[/b] 这个是继承了org.springframework.orm.hibernate3.support.HibernateDaoSupport类 —————————————————————————————————————— s = this.getSession(); String hql = "insert into Articles select a.artiId,a.artiName,a.artiSpec,a.artiModel,a.artiMarkPrice,a.artiAssociatorPrice,a.artiInfo,a.artiFlag," + "ac.artiClassName,ab.artiBrandName,ap.artiPhotoPath " + "from Article a,Articlass ac,Artibrand ab,Artiphoto ap" + " where a.artiClassId = ac.artiClassId and a.artiBrandId = ab.artiBrandId and a.artiPhotoId = ap.artiPhotoId"; t = s.beginTransaction(); s.createQuery(hql).executeUpdate(); t.commit(); 出现问题 —————————————————————————————————— org.hibernate.hql.ast.QuerySyntaxException: expecting OPEN, found 'select' near line 1, column 22 [insert into Articles select a.artiId,a.artiName,a.artiSpec,a.artiModel,a.artiMarkPrice,a.artiAssociatorPrice,a.artiInfo,a.artiFlag,ac.artiClassName,ab.artiBrandName,ap.artiPhotoPath from com.articleweb.model.Article a,com.articleweb.model.Articlass ac,com.articleweb.model.Artibrand ab,com.articleweb.model.Artiphoto ap where a.artiClassId = ac.artiClassId and a.artiBrandId = ab.artiBrandId and a.artiPhotoId = ap.artiPhotoId] at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59) at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:244) at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:155) at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54) at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71) at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133) at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112) at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583) at com.articleweb.model.control.ArticleControl.insertArticles(ArticleControl.java:27) at com.articleweb.struts.action.ArticlesAction.showarti(ArticlesAction.java:47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280) at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216) at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:619) [b]问题补充:[/b] 我是在MYSQL数据上 用SQL 试过之后才到HQL用的。 既然HQL支持的就不应该有这样的问题吧。查出来的结果结构和要导入的表结果是相同的。 [b]问题补充:[/b] Hibernate 3.1 数据库绝对支持这个方法 我试用过后才到HQL里运用的。 [b]问题补充:[/b] 要是可以用SQL的问题就不存在了。郁闷中。 [b]问题补充:[/b] 楼上的高手不是说HQL支持这个语法的吗 [b]问题补充:[/b] 这个跟关联查询有关系吗?字段和表名我都是按类对象来写的。 就是不行。 无奈了。 快背熟了 没错别字 还是不行 [b]问题补充:[/b] insert into Articles select a.artiId,a.artiName,a.artiSpec,a.artiModel,a.artiMarkPrice,a.artiAssociatorPrice,a.artiInfo,a.artiFlag," + "ac.artiClassName,ab.artiBrandName,ap.artiPhotoPath " + "from Article a,Articlass ac,Artibrand ab,Artiphoto ap" + " where a.artiClassId = ac.artiClassId and a.artiBrandId = ab.artiBrandId and a.artiPhotoId = ap.artiPhotoId [b]问题补充:[/b] String hql = "insert into Articles(artiId,artiName,artiSpec,artiModel,artiMarkPrice,artiAssociatorPrice,artiInfo,artiFlag,artiClassName,artiBrandName,artiPhotoPath)" + " select a.artiId,a.artiName,a.artiSpec,a.artiModel,a.artiMarkPrice,a.artiAssociatorPrice,a.artiInfo,a.artiFlag," + "ac.artiClassName,ab.artiBrandName,ap.artiPhotoPath " + "from Article a,Articlass ac,Artibrand ab,Artiphoto ap" + " where a.artiClassId = ac.artiClassId and a.artiBrandId = ab.artiBrandId and a.artiPhotoId = ap.artiPhotoId"; [b]问题补充:[/b] 异常变了 —————————————————————————————————————— org.hibernate.exception.ConstraintViolationException: could not execute update query at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:84) at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:334) at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:209) at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1126) at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:94) at com.articleweb.model.control.ArticleControl.insertArticles(ArticleControl.java:28) at com.articleweb.struts.action.ArticlesAction.showarti(ArticlesAction.java:47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280) at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216) at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:619) Caused by: java.sql.SQLException: Duplicate entry '1' for key 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2921) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1570) at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1085) at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:670) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1159) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1076) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1061) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102) at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:75) ... 33 more 16:58:21,437 DEBUG JDBCTransaction:152 - rollback 16:58:21,437 DEBUG JDBCTransaction:193 - re-enabling autocommit 16:58:21,437 DEBUG JDBCTransaction:163 - rolled back JDBC Connection 16:58:21,437 DEBUG QueryTranslatorImpl:236 - parse() - HQL: from com.articleweb.model.Articles 16:58:21,437 DEBUG ErrorCounter:68 - throwQueryException() : no errors 16:58:21,437 DEBUG HqlSqlBaseWalker:111 - select << begin [level=1, statement=select] 16:58:21,437 DEBUG FromElement:104 - FromClause{level=1} : com.articleweb.model.Articles (no alias) -> articles0_ 16:58:21,437 DEBUG HqlSqlBaseWalker:117 - select : finishing up [level=1, statement=select] 16:58:21,437 DEBUG HqlSqlWalker:511 - processQuery() : ( SELECT ( FromClause{level=1} myweb.articles articles0_ ) ) 16:58:21,453 DEBUG HqlSqlWalker:713 - Derived SELECT clause created. 16:58:21,453 DEBUG JoinProcessor:128 - Using FROM fragment [myweb.articles articles0_] 16:58:21,453 DEBUG HqlSqlBaseWalker:123 - select >> end [level=1, statement=select] 16:58:21,453 DEBUG ErrorCounter:68 - throwQueryException() : no errors 16:58:21,453 DEBUG QueryTranslatorImpl:206 - HQL: from com.articleweb.model.Articles 16:58:21,453 DEBUG QueryTranslatorImpl:207 - SQL: select articles0_.ArtiID as ArtiID11_, articles0_.ArtiName as ArtiName11_, articles0_.ArtiSpec as ArtiSpec11_, articles0_.ArtiModel as ArtiModel11_, articles0_.ArtiMarkPrice as ArtiMark5_11_, articles0_.ArtiAssociatorPrice as ArtiAsso6_11_, articles0_.ArtiInfo as ArtiInfo11_, articles0_.ArtiFlag as ArtiFlag11_, articles0_.ArtiClassName as ArtiClas9_11_, articles0_.ArtiBrandName as ArtiBra10_11_, articles0_.ArtiPhotoPath as ArtiPho11_11_ from myweb.articles articles0_ 16:58:21,453 DEBUG ErrorCounter:68 - throwQueryException() : no errors [b]问题补充:[/b] 详细异常 ————————————————————————————————————————16:58:20,703 DEBUG JDBCTransaction:54 - begin 16:58:20,718 DEBUG JDBCTransaction:59 - current autocommit status: true 16:58:20,718 DEBUG JDBCTransaction:62 - disabling autocommit 16:58:20,890 DEBUG QueryTranslatorImpl:236 - parse() - HQL: insert into Articles(artiId,artiName,artiSpec,artiModel,artiMarkPrice,artiAssociatorPrice,artiInfo,artiFlag,artiClassName,artiBrandName,artiPhotoPath) select a.artiId,a.artiName,a.artiSpec,a.artiModel,a.artiMarkPrice,a.artiAssociatorPrice,a.artiInfo,a.artiFlag,ac.artiClassName,ab.artiBrandName,ap.artiPhotoPath from com.articleweb.model.Article a,com.articleweb.model.Articlass ac,com.articleweb.model.Artibrand ab,com.articleweb.model.Artiphoto ap where a.artiClassId = ac.artiClassId and a.artiBrandId = ab.artiBrandId and a.artiPhotoId = ap.artiPhotoId 16:58:20,906 DEBUG ErrorCounter:68 - throwQueryException() : no errors 16:58:21,015 DEBUG HqlSqlBaseWalker:111 - insert << begin [level=1, statement=insert] 16:58:21,062 DEBUG HqlSqlBaseWalker:111 - select << begin [level=2, statement=insert] 16:58:21,109 DEBUG FromElement:104 - FromClause{level=1} : com.articleweb.model.Article (a) -> article0_ 16:58:21,109 DEBUG FromElement:104 - FromClause{level=1} : com.articleweb.model.Articlass (ac) -> articlass1_ 16:58:21,109 DEBUG FromElement:104 - FromClause{level=1} : com.articleweb.model.Artibrand (ab) -> artibrand2_ 16:58:21,125 DEBUG FromElement:104 - FromClause{level=1} : com.articleweb.model.Artiphoto (ap) -> artiphoto3_ 16:58:21,125 DEBUG FromReferenceNode:51 - Resolved : a -> ArtiId 16:58:21,125 DEBUG DotNode:541 - getDataType() : artiId -> org.hibernate.type.IntegerType@e1cfa7 16:58:21,125 DEBUG FromReferenceNode:51 - Resolved : a.artiId -> article0_.ArtiId 16:58:21,125 DEBUG FromReferenceNode:51 - Resolved : a -> ArtiId 16:58:21,125 DEBUG DotNode:541 - getDataType() : artiName -> org.hibernate.type.StringType@10811b5 16:58:21,125 DEBUG FromReferenceNode:51 - Resolved : a.artiName -> article0_.ArtiName 16:58:21,125 DEBUG FromReferenceNode:51 - Resolved : a -> ArtiId 16:58:21,125 DEBUG DotNode:541 - getDataType() : artiSpec -> org.hibernate.type.StringType@10811b5 16:58:21,125 DEBUG FromReferenceNode:51 - Resolved : a.artiSpec -> article0_.ArtiSpec 16:58:21,156 DEBUG FromReferenceNode:51 - Resolved : a -> ArtiId 16:58:21,156 DEBUG DotNode:541 - getDataType() : artiModel -> org.hibernate.type.StringType@10811b5 16:58:21,156 DEBUG FromReferenceNode:51 - Resolved : a.artiModel -> article0_.ArtiModel 16:58:21,156 DEBUG FromReferenceNode:51 - Resolved : a -> ArtiId 16:58:21,156 DEBUG DotNode:541 - getDataType() : artiMarkPrice -> org.hibernate.type.FloatType@1af5853 16:58:21,156 DEBUG FromReferenceNode:51 - Resolved : a.artiMarkPrice -> article0_.ArtiMarkPrice 16:58:21,156 DEBUG FromReferenceNode:51 - Resolved : a -> ArtiId 16:58:21,156 DEBUG DotNode:541 - getDataType() : artiAssociatorPrice -> org.hibernate.type.FloatType@1af5853 16:58:21,156 DEBUG FromReferenceNode:51 - Resolved : a.artiAssociatorPrice -> article0_.ArtiAssociatorPrice 16:58:21,171 DEBUG FromReferenceNode:51 - Resolved : a -> ArtiId 16:58:21,171 DEBUG DotNode:541 - getDataType() : artiInfo -> org.hibernate.type.StringType@10811b5 16:58:21,171 DEBUG FromReferenceNode:51 - Resolved : a.artiInfo -> article0_.ArtiInfo 16:58:21,171 DEBUG FromReferenceNode:51 - Resolved : a -> ArtiId 16:58:21,171 DEBUG DotNode:541 - getDataType() : artiFlag -> org.hibernate.type.IntegerType@e1cfa7 16:58:21,171 DEBUG FromReferenceNode:51 - Resolved : a.artiFlag -> article0_.ArtiFlag 16:58:21,171 DEBUG FromReferenceNode:51 - Resolved : ac -> ArtiClassId 16:58:21,171 DEBUG DotNode:541 - getDataType() : artiClassName -> org.hibernate.type.StringType@10811b5 16:58:21,171 DEBUG FromReferenceNode:51 - Resolved : ac.artiClassName -> articlass1_.ArtiClassName 16:58:21,171 DEBUG FromReferenceNode:51 - Resolved : ab -> ArtiBrandId 16:58:21,171 DEBUG DotNode:541 - getDataType() : artiBrandName -> org.hibernate.type.StringType@10811b5 16:58:21,171 DEBUG FromReferenceNode:51 - Resolved : ab.artiBrandName -> artibrand2_.ArtiBrandName 16:58:21,171 DEBUG FromReferenceNode:51 - Resolved : ap -> ArtiPhotoId 16:58:21,171 DEBUG DotNode:541 - getDataType() : artiPhotoPath -> org.hibernate.type.StringType@10811b5 16:58:21,171 DEBUG FromReferenceNode:51 - Resolved : ap.artiPhotoPath -> artiphoto3_.ArtiPhotoPath 16:58:21,218 DEBUG FromReferenceNode:51 - Resolved : a -> ArtiId 16:58:21,218 DEBUG DotNode:541 - getDataType() : artiClassId -> org.hibernate.type.IntegerType@e1cfa7 16:58:21,218 DEBUG FromReferenceNode:51 - Resolved : a.artiClassId -> article0_.ArtiClassId 16:58:21,218 DEBUG FromReferenceNode:51 - Resolved : ac -> ArtiClassId 16:58:21,218 DEBUG DotNode:541 - getDataType() : artiClassId -> org.hibernate.type.IntegerType@e1cfa7 16:58:21,218 DEBUG FromReferenceNode:51 - Resolved : ac.artiClassId -> articlass1_.ArtiClassId 16:58:21,218 DEBUG FromReferenceNode:51 - Resolved : a -> ArtiId 16:58:21,218 DEBUG DotNode:541 - getDataType() : artiBrandId -> org.hibernate.type.IntegerType@e1cfa7 16:58:21,218 DEBUG FromReferenceNode:51 - Resolved : a.artiBrandId -> article0_.ArtiBrandId 16:58:21,218 DEBUG FromReferenceNode:51 - Resolved : ab -> ArtiBrandId 16:58:21,218 DEBUG DotNode:541 - getDataType() : artiBrandId -> org.hibernate.type.IntegerType@e1cfa7 16:58:21,218 DEBUG FromReferenceNode:51 - Resolved : ab.artiBrandId -> artibrand2_.ArtiBrandId 16:58:21,218 DEBUG FromReferenceNode:51 - Resolved : a -> ArtiId 16:58:21,218 DEBUG DotNode:541 - getDataType() : artiPhotoId -> org.hibernate.type.IntegerType@e1cfa7 16:58:21,234 DEBUG FromReferenceNode:51 - Resolved : a.artiPhotoId -> article0_.ArtiPhotoId 16:58:21,234 DEBUG FromReferenceNode:51 - Resolved : ap -> ArtiPhotoId 16:58:21,234 DEBUG DotNode:541 - getDataType() : artiPhotoId -> org.hibernate.type.IntegerType@e1cfa7 16:58:21,234 DEBUG FromReferenceNode:51 - Resolved : ap.artiPhotoId -> artiphoto3_.ArtiPhotoId 16:58:21,234 DEBUG HqlSqlBaseWalker:117 - select : finishing up [level=2, statement=insert] 16:58:21,234 DEBUG HqlSqlWalker:511 - processQuery() : ( SELECT ( {select clause} ( article0_.ArtiId ArtiId artiId ) ( article0_.ArtiName ArtiId artiName ) ( article0_.ArtiSpec ArtiId artiSpec ) ( article0_.ArtiModel ArtiId artiModel ) ( article0_.ArtiMarkPrice ArtiId artiMarkPrice ) ( article0_.ArtiAssociatorPrice ArtiId artiAssociatorPrice ) ( article0_.ArtiInfo ArtiId artiInfo ) ( article0_.ArtiFlag ArtiId artiFlag ) ( articlass1_.ArtiClassName ArtiClassId artiClassName ) ( artibrand2_.ArtiBrandName ArtiBrandId artiBrandName ) ( artiphoto3_.ArtiPhotoPath ArtiPhotoId artiPhotoPath ) ) ( FromClause{level=1} myweb.article article0_ myweb.articlass articlass1_ myweb.artibrand artibrand2_ myweb.artiphoto artiphoto3_ ) ( where ( and ( and ( = ( article0_.ArtiClassId ArtiId artiClassId ) ( articlass1_.ArtiClassId ArtiClassId artiClassId ) ) ( = ( article0_.ArtiBrandId ArtiId artiBrandId ) ( artibrand2_.ArtiBrandId ArtiBrandId artiBrandId ) ) ) ( = ( article0_.ArtiPhotoId ArtiId artiPhotoId ) ( artiphoto3_.ArtiPhotoId ArtiPhotoId artiPhotoId ) ) ) ) ) 16:58:21,281 DEBUG JoinProcessor:128 - Using FROM fragment [myweb.artiphoto artiphoto3_] 16:58:21,281 DEBUG JoinProcessor:128 - Using FROM fragment [myweb.artibrand artibrand2_] 16:58:21,281 DEBUG JoinProcessor:128 - Using FROM fragment [myweb.articlass articlass1_] 16:58:21,281 DEBUG JoinProcessor:128 - Using FROM fragment [myweb.article article0_] 16:58:21,281 DEBUG HqlSqlBaseWalker:123 - select >> end [level=2, statement=insert] 16:58:21,281 DEBUG HqlSqlBaseWalker:117 - insert : finishing up [level=1, statement=insert] 16:58:21,281 DEBUG HqlSqlBaseWalker:123 - insert >> end [level=1, statement=insert] 16:58:21,281 DEBUG ErrorCounter:68 - throwQueryException() : no errors 16:58:21,328 DEBUG ErrorCounter:68 - throwQueryException() : no errors 16:58:21,437 WARN JDBCExceptionReporter:71 - SQL Error: 1062, SQLState: 23000 16:58:21,437 ERROR JDBCExceptionReporter:72 - Duplicate entry '1' for key 1 org.hibernate.exception.ConstraintViolationException: could not execute update query at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:84) at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:334) at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:209) at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1126) at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:94) at com.articleweb.model.control.ArticleControl.insertArticles(ArticleControl.java:28) at com.articleweb.struts.action.ArticlesAction.showarti(ArticlesAction.java:47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280) at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216) at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:619) Caused by: java.sql.SQLException: Duplicate entry '1' for key 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2921) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1570) at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1085) at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:670) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1159) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1076) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1061) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102) at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:75) ... 33 more 16:58:21,437 DEBUG JDBCTransaction:152 - rollback 16:58:21,437 DEBUG JDBCTransaction:193 - re-enabling autocommit 16:58:21,437 DEBUG JDBCTransaction:163 - rolled back JDBC Connection 16:58:21,437 DEBUG QueryTranslatorImpl:236 - parse() - HQL: from com.articleweb.model.Articles 16:58:21,437 DEBUG ErrorCounter:68 - throwQueryException() : no errors 16:58:21,437 DEBUG HqlSqlBaseWalker:111 - select << begin [level=1, statement=select] 16:58:21,437 DEBUG FromElement:104 - FromClause{level=1} : com.articleweb.model.Articles (no alias) -> articles0_ 16:58:21,437 DEBUG HqlSqlBaseWalker:117 - select : finishing up [level=1, statement=select] 16:58:21,437 DEBUG HqlSqlWalker:511 - processQuery() : ( SELECT ( FromClause{level=1} myweb.articles articles0_ ) ) 16:58:21,453 DEBUG HqlSqlWalker:713 - Derived SELECT clause created. 16:58:21,453 DEBUG JoinProcessor:128 - Using FROM fragment [myweb.articles articles0_] 16:58:21,453 DEBUG HqlSqlBaseWalker:123 - select >> end [level=1, statement=select] 16:58:21,453 DEBUG ErrorCounter:68 - throwQueryException() : no errors 16:58:21,453 DEBUG QueryTranslatorImpl:206 - HQL: from com.articleweb.model.Articles 16:58:21,453 DEBUG QueryTranslatorImpl:207 - SQL: select articles0_.ArtiID as ArtiID11_, articles0_.ArtiName as ArtiName11_, articles0_.ArtiSpec as ArtiSpec11_, articles0_.ArtiModel as ArtiModel11_, articles0_.ArtiMarkPrice as ArtiMark5_11_, articles0_.ArtiAssociatorPrice as ArtiAsso6_11_, articles0_.ArtiInfo as ArtiInfo11_, articles0_.ArtiFlag as ArtiFlag11_, articles0_.ArtiClassName as ArtiClas9_11_, articles0_.ArtiBrandName as ArtiBra10_11_, articles0_.ArtiPhotoPath as ArtiPho11_11_ from myweb.articles articles0_ 16:58:21,453 DEBUG ErrorCounter:68 - throwQueryException() : no errors
各位大佬们,为什么PHP新闻发布系统中已经注册好的用户无法登录,总是显示密码错误,但是数据库有字段存在。。。
![图片说明](https://img-ask.csdn.net/upload/201911/09/1573288989_712391.png)![图片说明](https://img-ask.csdn.net/upload/201911/09/1573289003_724529.png)![图片说明](https://img-ask.csdn.net/upload/201911/09/1573289017_161268.png)![图片说明](https://img-ask.csdn.net/upload/201911/09/1573289321_184506.png) 以下是login_users_process.php的代码: <?php session_start(); include_once("functions/database.php"); $name = $_POST["name"]; if($_POST["checknum"] != $_SESSION["checknum"]){ header("Location:index_users.php?login_message=checknum_error"); return; } if(isset($_COOKIE["password"])){ $first_password = $_COOKIE["password"]; }else{ $first_password = md5($_POST["password"]); } if(empty($_POST["expire"])){ setcookie("name",$name,time()-1); setcookie("password",$first_password,time()-1); } $password = md5($first_password); $sql = "select * from users where name='$name' and password ='$password'"; get_connection(); $result_set = mysql_query($sql); if(mysql_num_rows($result_set)>0){ if(isset($_POST["expire"])){ $expire = time()+intval($_POST["expire"]); setcookie("name",$name,$expire); setcookie("password",$first_password,$expire); } $users = mysql_fetch_array($result_set); $_SESSION['user_id'] = $users['user_id']; $_SESSION['name'] = $users['name']; header("Location:index_users.php?login_message=password_right"); }else{ header("Location:index_users.php?login_message=password_error"); } close_connection(); ?> 以下是login_users.php 的代码 <?php session_start(); include_once("functions/database.php"); include_once("functions/is_login.php"); if(isset($_GET["login_message"])){ if($_GET["login_message"]=="checknum_error"){ echo "验证码错误,重新登录!<br/>"; }else if($_GET["login_message"]=="password_error"){ echo "密码错误,重新登录!<br/>"; }else if($_GET["login_message"]=="password_right"){ echo "登录成功!<br/>"; } } if(is_login()){ echo "欢迎".$_SESSION['name']."访问系统!<br/>"; echo "<a href='logout.php'>注销</a>"; return; } $name = ""; if(isset($_COOKIE["name"])){ $name = $_COOKIE["name"]; } $password = ""; if(isset($_COOKIE["password"])){ $password = $_COOKIE["password"]; } ?> <form action="login_users_process.php" method="post"> 用户名:<input type="text" name="name" size="11" value="<?php echo $name?>" /><br/> 密 码 :<input type="password" name="password" size="11" value="<?php echo $password?>" /><br/> 验证码:<input type="text" name="checknum" size="6"/> <?php $checknum = ""; $checknum .= mt_rand(0,9); $checknum .= mt_rand(0,9); $checknum .= mt_rand(0,9); $checknum .= mt_rand(0,9); $_SESSION['checknum'] = $checknum; echo $checknum;?> <br/> <input type="checkbox" name="expire" value="3600" checked/>Cookie保存1小时<br/> <input type="submit" value="登录" /> <input type="button" value="注册" onClick="location.href='register.html'"/> </form>
Mybatis小练习 报错 求大神指导,信息详尽
# UserMapper ``` public interface UserMapper { //根据id查询用户信息 public User findUserById(int id) throws Exception; //根据用户名列查询用户列表 public List<User> findUserByName(String name)throws Exception; //插入用户 public void insertUser(User user)throws Exception; } ``` # UserMapper.xml ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离 注意:使用mapper代理方法开发,namespace有特殊重要的作用,namespace等于mapper接口地址 --> <mapper namespace="com.neuedu.mapper.UserMapper"> <!-- 在 映射文件中配置很多sql语句 --> <!-- 需求:通过id查询用户表的记录 --> <!-- 通过 select执行数据库查询 id:标识 映射文件中的 sql 将sql语句封装到mappedStatement对象中,所以将id称为statement的id parameterType:指定输入 参数的类型,这里指定int型 #{}表示一个占位符号 #{id}:其中的id表示接收输入 的参数,参数名称就是id,如果输入 参数是简单类型,#{}中的参数名可以任意,可以value或其它名称 resultType:指定sql输出结果 的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象。 --> <select id="findUserById" parameterType="int" resultType="user"> SELECT * FROM user WHERE id=#{value} </select> <!-- 根据用户名称模糊查询用户信息,可能返回多条 resultType:指定就是单条记录所映射的java对象 类型 ${}:表示拼接sql串,将接收到参数的内容不加任何修饰拼接在sql中。 使用${}拼接sql,引起 sql注入 ${value}:接收输入 参数的内容,如果传入类型是简单类型,${}中只能使用value --> <select id="findUserByName" parameterType="java.lang.String" resultType="com.neuedu.pojo.User"> SELECT * FROM user WHERE username LIKE '%${value}%' </select> <!-- 添加用户 parameterType:指定输入 参数类型是pojo(包括 用户信息) #{}中指定pojo的属性名,接收到pojo对象的属性值,mybatis通过OGNL获取对象的属性值 --> <insert id="insertUser" parameterType="com.neuedu.pojo.User"> <!-- 将插入数据的主键返回,返回到user对象中 SELECT LAST_INSERT_ID():得到刚insert进去记录的主键值,只适用与自增主键 keyProperty:将查询到主键值设置到parameterType指定的对象的哪个属性 order:SELECT LAST_INSERT_ID()执行顺序,相对于insert语句来说它的执行顺序 resultType:指定SELECT LAST_INSERT_ID()的结果类型 --> insert into user(id,username,birthday,sex,address) values (seq_user.nextval,#{username},#{birthday},#{sex},#{address}) <!-- 插入数据后,返回自动增长列的ID值,将sql语句的返回值赋给parameterType绑定对象的ID属性 MySQL中使用: select LAST_INSERT_ID() --> <selectKey keyProperty="id" order="AFTER" resultType="int"> SELECT LAST_INSERT_ID() <!--select seq_user.currval from dual--> </selectKey> <!-- 使用mysql的uuid()生成主键 执行过程: 首先通过uuid()得到主键,将主键设置到user对象的id属性中 其次在insert执行时,从user对象中取出id属性值 --> <!-- <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String"> SELECT uuid() </selectKey> insert into user(id,username,birthday,sex,address) value(#{id},#{username},#{birthday},#{sex},#{address}) --> </insert> <!-- 删除 用户 根据id删除用户,需要输入 id值 --> <delete id="deleteUser" parameterType="java.lang.Integer"> delete from user where id=#{id} </delete> <!-- 根据id更新用户 分析: 需要传入用户的id 需要传入用户的更新信息 parameterType指定user对象,包括 id和更新信息,注意:id必须存在 #{id}:从输入 user对象中获取id属性值 --> <update id="updateUser" parameterType="com.neuedu.pojo.User"> update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id} </update> </mapper> ``` # Tset ``` public class UserMapperTest { private SqlSessionFactory sqlSessionFactory; // 此方法是在执行testFindUserById之前执行 @Before public void setUp() throws Exception { // 创建sqlSessionFactory // mybatis配置文件 String resource = "config/SqlMapConfig.xml"; // 得到配置文件流 InputStream inputStream = Resources.getResourceAsStream(resource); // 创建会话工厂,传入mybatis的配置文件信息 sqlSessionFactory = new SqlSessionFactoryBuilder() .build(inputStream); } @Test public void testFindUserById() throws Exception { SqlSession sqlSession = sqlSessionFactory.openSession(); //创建UserMapper对象,mybatis自动生成mapper代理对象 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); //调用userMapper的方法 User user = userMapper.findUserById(1); System.out.println(user); } @Test public void testFindUserByName() throws Exception { SqlSession sqlSession = sqlSessionFactory.openSession(); //创建UserMapper对象,mybatis自动生成mapper代理对象 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); //调用userMapper的方法 List<User> list = userMapper.findUserByName("袁超"); sqlSession.close(); System.out.println(list); } } ``` # 报错信息 ``` DEBUG [main] - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter. DEBUG [main] - Class not found: org.jboss.vfs.VFS DEBUG [main] - JBoss 6 VFS API is not available in this environment. DEBUG [main] - Class not found: org.jboss.vfs.VirtualFile DEBUG [main] - VFS implementation org.apache.ibatis.io.JBoss6VFS is not valid in this environment. DEBUG [main] - Using VFS adapter org.apache.ibatis.io.DefaultVFS DEBUG [main] - Find JAR URL: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/classes/com/neuedu/pojo DEBUG [main] - Not a JAR: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/classes/com/neuedu/pojo DEBUG [main] - Reader entry: User.class DEBUG [main] - Listing file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/classes/com/neuedu/pojo DEBUG [main] - Find JAR URL: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/classes/com/neuedu/pojo/User.class DEBUG [main] - Not a JAR: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/classes/com/neuedu/pojo/User.class DEBUG [main] - Reader entry: ���� 1 N DEBUG [main] - Checking to see if class com.neuedu.pojo.User matches criteria [is assignable to Object] DEBUG [main] - PooledDataSource forcefully closed/removed all connections. DEBUG [main] - PooledDataSource forcefully closed/removed all connections. DEBUG [main] - PooledDataSource forcefully closed/removed all connections. DEBUG [main] - PooledDataSource forcefully closed/removed all connections. DEBUG [main] - Find JAR URL: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/test-classes/com/neuedu/mapper DEBUG [main] - Not a JAR: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/test-classes/com/neuedu/mapper DEBUG [main] - Reader entry: UserMapperTest.class DEBUG [main] - Listing file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/test-classes/com/neuedu/mapper DEBUG [main] - Find JAR URL: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/test-classes/com/neuedu/mapper/UserMapperTest.class DEBUG [main] - Not a JAR: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/test-classes/com/neuedu/mapper/UserMapperTest.class DEBUG [main] - Reader entry: ���� 1 a DEBUG [main] - Find JAR URL: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/classes/com/neuedu/mapper DEBUG [main] - Not a JAR: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/classes/com/neuedu/mapper DEBUG [main] - Reader entry: UserMapper.class DEBUG [main] - Reader entry: UserMapper.xml DEBUG [main] - Listing file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/classes/com/neuedu/mapper DEBUG [main] - Find JAR URL: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/classes/com/neuedu/mapper/UserMapper.class DEBUG [main] - Not a JAR: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/classes/com/neuedu/mapper/UserMapper.class DEBUG [main] - Reader entry: ���� 1    findUserById (I)Lcom/neuedu/pojo/User; DEBUG [main] - Find JAR URL: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/classes/com/neuedu/mapper/UserMapper.xml DEBUG [main] - Not a JAR: file:/C:/Users/95638/Desktop/mybatis/ch02-mybatis01/ch02-mybatis01/target/classes/com/neuedu/mapper/UserMapper.xml DEBUG [main] - Reader entry: <?xml version="1.0" encoding="UTF-8" ?> DEBUG [main] - Checking to see if class com.neuedu.mapper.UserMapperTest matches criteria [is assignable to Object] DEBUG [main] - Checking to see if class com.neuedu.mapper.UserMapper matches criteria [is assignable to Object] DEBUG [main] - Opening JDBC Connection DEBUG [main] - Created connection 209833425. DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@c81cdd1] DEBUG [main] - ==> Preparing: SELECT * FROM T_USER WHERE username LIKE '%袁超%' DEBUG [main] - ==> Parameters: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'mybatis.t_user' doesn't exist ### The error may exist in com/neuedu/mapper/UserMapper.xml ### The error may involve com.neuedu.mapper.UserMapper.findUserByName-Inline ### The error occurred while setting parameters ### SQL: SELECT * FROM T_USER WHERE username LIKE '%袁超%' ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'mybatis.t_user' doesn't exist at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59) at com.sun.proxy.$Proxy3.findUserByName(Unknown Source) at com.neuedu.mapper.UserMapperTest.testFindUserByName(UserMapperTest.java:68) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.junit.runner.JUnitCore.run(JUnitCore.java:160) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'mybatis.t_user' doesn't exist at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:400) at com.mysql.jdbc.Util.getInstance(Util.java:383) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2447) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2594) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2545) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1901) at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1193) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59) at com.sun.proxy.$Proxy5.execute(Unknown Source) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148) ... 29 more ``` # SqlMapConfig.xml ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 加载属性文件 --> <properties resource="db.properties"> <!--properties中还可以配置一些属性名和属性值 --> <!-- <property name="jdbc.driver" value=""/> --> </properties> <!-- 全局配置参数,需要时再设置 --> <!-- <settings> </settings> --> <!-- 别名定义 --> <typeAliases> <!-- 针对单个别名定义 type:类型的路径 alias:别名 --> <!-- <typeAlias type="com.neuedu.mybatis.po.User" alias="user"/> --> <!-- 批量别名定义 指定包名,mybatis自动扫描包中的po类,自动定义别名,别名就是类名(首字母大写或小写都可以) --> <package name="com.neuedu.pojo"/> </typeAliases> <!-- 和spring整合后 environments配置将废除--> <environments default="development"> <environment id="development"> <!-- 使用jdbc事务管理,事务控制由mybatis--> <transactionManager type="JDBC" /> <!-- 数据库连接池,由mybatis管理--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <!-- 加载 映射文件 --> <mappers> <mapper resource="sqlmap/User.xml"/> <!--通过resource方法一次加载一个映射文件 --> <!-- <mapper resource="sqlmap/User.xml"/> --> <!-- 通过mapper接口加载单个 映射文件 遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中 上边规范的前提是:使用的是mapper代理方法 --> <!-- <mapper class="com.neuedu.mapper.UserMapper"/> --> <!-- 批量加载mapper 指定mapper接口的包名,mybatis自动扫描包下边所有mapper接口进行加载 遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中 上边规范的前提是:使用的是mapper代理方法 --> <package name="com.neuedu.mapper"/> </mappers> </configuration> ``` # User ``` public class User { //属性名和数据库表的字段对应 private int id; private String username;// 用户姓名 private String sex;// 性别 private Date birthday;// 生日 private String address;// 地址 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "User [id=" + id + ", username=" + username + ", sex=" + sex + ", birthday=" + birthday + ", address=" + address + "]"; } } ``` 也不知道为什么,明明已经在UserMapper.xml里面把表名改了,但是报错信息里查找的还是T-user表 求大神指导!感恩! # 问题已解决 在maven文件里加上下面的代码 ``` <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*Mapper.xml</include> </includes> </resource> </resources> ```
需要用MySQL实现一个频次统计排序的功能,并进行表关联输出
本人需要用MySQL实现如下功能: 表A name,ID AAA,1000.1.1 AAA,1000.1.1 BBB,1000.1.3 BBB,1000.1.3 CCC,1000.1.4 CCC,1000.1.4 DDD,1000.1.5 DDD,1000.1.5 EEE,1000.1.7 EEE,1000.1.7 FFF,1011.8.9 GGG,1011.8.10 HHH,1011.8.11 III,1011.8.12 JJJ,1011.8.13 KKK,1011.8.14 KKK,1011.8.14 LLL,1011.8.15 MMM,1011.8.16 表B ID1,name1,ID2,name2 1000.1.3,BBB,6016,01A 1000.1.4,CCC,6016,01A 1000.1.5,DDD,6016,01A 1000.1.9,NNN,6016,01A 1000.1.26,OOO,6009,01B 1000.1.193,PPP,6006,01C 1000.1.194,QQQ,6007,01D 1000.3.8,RRR,7008,02A 1000.4.12,SSS,NULL,NULL 表C shortID,ID2,name2 1000.1,6016,01A 表D和表B结构一样,用来存放最终想要的结果 注明下ID,ID1,ID2之类的字段都是“数字1.数字2.数字3”这样的结构 要实现的功能是: 1.清除表A的重复记录 2.生成表C:只有当表B的ID2以6开头且不为NULL的时候,才进行下面的操作 shortID是表B的ID1去掉最后一个点以及数字3之后的值。 筛选出所有的shortID,ID2,name2组合,然后统计频次,如下: 1000.1,6016,01A 1000.1,6016,01A 1000.1,6016,01A 1000.1,6016,01A 1000.1,6009,01B 1000.1,6006,01C 统计结果(最后一列是频次): 1000.1,6016,01A,4 1000.1,6009,01B,1 1000.1,6006,01C,1 那么就把频次最高的一行1000.1,6016,01A放入表C,其余忽略 对于其他shortID的各种组合,也进行同样处理,并选出频次最高的一行放入表C。 3.用表A的ID来关联表B的ID1 如果能找到相关结果(若ID2值为NULL,算没找到),就直接把表B的那一行插入表D 如果找不到相关结果,那么就拿A的ID的“数字1.数字2”去和表C的shortID进行匹配 能匹配上的就按照如下格式输出到表D:表A的ID,表A的name,表C的ID2,表C的name2 匹配不上,就忽略,不输出。 遍历表B的所有行 如果这一行的ID2不是NULL,就直接插入到D中,注意不要和表D当中已有的记录重复。 如果这一行的ID2是NULL,就拿这一行的ID1和上面表A的ID以同样的处理方式来处理。
新手学习 希望大神给我写点注释,从根据编号查询开始
package dao.impl; import java.sql.*; import java.util.ArrayList; import java.util.List; import pojo.Lian; import dao.UserDao; public class UserDaoImpl implements UserDao { //用于数据库连接 Connection conn=null; //用于对结果的预处理 Statement st=null; //用于处理结果集 ResultSet rs=null; 220 public boolean getConnection(){ String driver ="com.mysql.jdbc.Driver";//数据库的驱动!! String url="jdbc:mysql://localhost:3306/zhou";//数据库的地址!! String username="root";//表示用户名称 String password="zhou";//表示用户的密码 try { //加载驱动类 Class.forName(driver); //连接数据库 conn=DriverManager.getConnection(url,username,password);//表示要使用驱动以此来链接数据库 } catch (Exception e) { e.printStackTrace();//catch作用是抓住异常 } return true; } @Override public List<Lian> getLian() { List<Lian> list=new ArrayList<Lian>();//定义一个list类 String sql="select *from lian";//用sql语句创建一个查询 try { if(this.getConnection()){//假如这个链接成功就将执行查询 //获取Statement对象执行sql语句 st=conn.createStatement(); //获取结果集 rs=st.executeQuery(sql); while(rs.next()){ //查询出所有信息,取出rs对象中的各字段名下的内容,赋值给各变量 int id=rs.getInt("id");//使用get方法 String name=rs.getString("name"); String password=rs.getString("password"); int age=rs.getInt("age"); String iphone=rs.getString("iphone"); String address=rs.getString("address"); //System.out.println("id:"+id+"name:"+name+"password:"+password+"age:"+age+"iphone:"+iphone+"address:"+address); Lian u=new Lian(); u.setId(id); u.setName(name); u.setPassword(password); u.setAge(age); u.setIphone(iphone); u.setAddress(address); list.add(u); } } } catch (SQLException e) { e.printStackTrace(); }finally{ try { rs.close();//关闭数据库 避免浪费资源 st.close();//关闭statement conn.close();//关闭链接 } catch (SQLException e) { e.printStackTrace(); } } return list;//返回list类对象 } @Override public Lian add(Lian user) { String sql="INSERT INTO lian (name,password,age,iphone,address)VALUES('"+user.getName()+"',"+user.getPassword()+",'"+user.getAge()+"','"+user.getIphone()+"','"+user.getAddress()+"')"; //利用sql语句实现list中数据的增加 if(this.getConnection()){ try { st=conn.createStatement(); int i=st.executeUpdate(sql);//当数据更新时,i的值就被重新赋予 if(i>0){ System.out.println("添加数据成功!!!"); } } catch (Exception e) { e.printStackTrace(); }finally{ try { st.close();//关闭状态集 conn.close();//关闭链接 } catch (SQLException e) { e.printStackTrace(); } } } return user; } @Override public boolean update(Lian user) {//修改lian表中数据资料 String sql="update lian set name=?,password=?,age=?,iphone=?,address=? where id=?"; try { if(this.getConnection()){ //预处理,对表链接成功与否进行判断 PreparedStatement ps=conn.prepareStatement(sql); ps.setString(1, user.getName());// 通过函数方法对新的参数赋值 i ps.setString(2,user.getPassword()); ps.setInt(3, user.getAge()); ps.setString(4, user.getIphone()); ps.setString(5, user.getAddress()); ps.setInt(6, user.getId()); ps.addBatch(); int i=ps.executeUpdate();//当数据被更改,i的值将被重新赋予 if(i>0){ System.out.println("嘿,哥们,你已经成功的更新数据了!!!"); return true;//提示数据更新成功 }else{ System.out.println("更新数据出错,再来一次???"); return false;//提示数据更新失败 } } } catch (SQLException e) { e.printStackTrace(); }finally{ try { if(rs!=null){rs.close();}//关闭结果集 if(st!=null){st.close();}//关闭状态集 if(conn!=null){conn.close();}//关闭链接 } catch (SQLException e) { e.printStackTrace(); } } return false; } @Override public void delete(int id) { String sql="delete from lian where id=?"; //使用sql语句删除lian类中的数据 try { if(this.getConnection()){ PreparedStatement ps=conn.prepareStatement(sql); ps.setInt(1, id); //驱动将其值转化为sql整数类型值 int i=ps.executeUpdate(); if(i>0){ System.out.println("删除成功"); //提示删除成功 } } } catch (SQLException e) { e.printStackTrace(); } finally{ try { rs.close();//关闭结果集 st.close();//关闭状态集 conn.close();//关闭链接 } catch (SQLException e) { e.printStackTrace(); } } } //用户的登录 public Lian login(Lian user){ String sql="select name,password from lian"; //使用sql语句查询lian表中的姓名和密码数据 Lian us =new Lian(); //创建一个新lian表 if(this.getConnection()){ try { st=conn.createStatement(); ResultSet rs=st.executeQuery(sql); while(rs.next()){ String name=rs.getString("name"); String password=rs.getString("password"); us.setName(name); us.setPassword(password); return us; } } catch (SQLException e) { e.printStackTrace(); } } return us; } //s根据编号来查询 @Override public Lian findById(String usrId) { String sql="select * from lian where id =" +usrId; Lian u=null; try { u=new Lian(); if(this.getConnection()){ //获取Statement对象执行sql语句 st=conn.createStatement(); //获取结果集 rs=st.executeQuery(sql); while(rs.next()){ //查询出所有信息,括号里面对应的是数据库表的字段名,也就是实体类的名字 int id=rs.getInt("id"); String name=rs.getString("name"); String password=rs.getString("password"); int age=rs.getInt("age"); String iphone=rs.getString("iphone"); String address=rs.getString("address"); //System.out.println("id:"+id+"name:"+name+"password:"+password+"age:"+age+"iphone:"+iphone+"address:"+address); u.setId(id); u.setName(name); u.setPassword(password); u.setAge(age); u.setIphone(iphone); u.setAddress(address); } System.out.println(u.getName()+u.getAddress()); } return u; } catch (SQLException e) { e.printStackTrace(); }finally{ try { rs.close(); st.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } return u; } } /*public static void main(String[] args) { UserDao u=new UserDaoImpl(); Lian p=new Lian(); p.setName("zhou"); p.setPassword("12456"); u.login(p); // p.setId(5); // p.setAddress("九华山"); // p.setAge(24); // p.setIphone("1345687912"); // p.setName("sanye"); // p.setPassword("123456"); // // u.add(p); //u.update(p); //u.delete(5); // List<Lian> list=u.getLian(); // // for (Lian lian : list) { // // System.out.println(lian.toString()); // } // }*/
关于mssql以日期为条件批量修改问题?
现有费用表a。字段名为日期,格式为yyyy-mm-dd。字段名为费用。如何用一句sql修改所有6月份的费用值为5月份的费用值?这个表是全年费用表不止一年的数据。改成一一对应的比如6月1.2.3号费用改为对应5月1.2.3号费用。感谢。
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
4G EPS 第四代移动通信系统
目录 文章目录目录4G 与 LTE/EPCLTE/EPC 的架构E-UTRANE-UTRAN 协议栈eNodeBEPCMMES-GWP-GWHSSLTE/EPC 协议栈概览 4G 与 LTE/EPC 4G,即第四代移动通信系统,提供了 3G 不能满足的无线网络宽带化,主要提供数据(上网)业务。而 LTE(Long Term Evolution,长期演进技术)是电信领域用于手机及数据终端的高速无线通...
相关热词 c# clr dll c# 如何orm c# 固定大小的字符数组 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目
立即提问