sqlserver 插入数据的时候 插入失败,报错内容为
“SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase”
理论上来说,插入数据失败,原因无非就是:a 后台参数长度,超过数据库中字段定义的长度; b 后代参数的数据类型,与数据库中字段的数据类型冲突;这两个大原因;
可以参考https://blog.csdn.net/qzslzy/article/details/52103906该文章来解决;
但是很不幸,我发现我的程序,在本地操作(增删改查)都没毛病,部署上线后,数据无法插入;仔细看了下不能插入数据的数据表,发现都有一个日期需要插入;测试过程中,我把日期删掉,重新插入数据,没毛病;于是查了很多关于sqlserver日期插入的问题;
sqlserver 的日期插入,不能直接插入 java.util.Date类型是日期;需要做一步转换,new java.sql.Date(时间戳);如下
1 String sql = "insert into [dbo].datacheck(totalId,companyId,grainDate,facilityinf,checkinf," 2 + "remark,checkMan) values(?,?,?,?,?,?,?)"; 3 return DB.insert2(sql, uuid + "",datacheck.getCompanyId(),new java.sql.Date(datacheck.getGrainDate().getTime()),datacheck.getFacilityinf(),datacheck.getCheckinf(),datacheck.getRemark(),datacheck.getCheckMan());
这个坑,要注意。