天天看點

SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase

sqlserver 插入資料的時候 插入失敗,報錯内容為

“SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase”

理論上來說,插入資料失敗,原因無非就是:a 背景參數長度,超過資料庫中字段定義的長度; b 後代參數的資料類型,與資料庫中字段的資料類型沖突;這兩個大原因;

可以參考​該文章來解決;

但是很不幸,我發現我的程式,在本地操作(增删改查)都沒毛病,部署上線後,資料無法插入;仔細看了下不能插入資料的資料表,發現都有一個日期需要插入;測試過程中,我把日期删掉,重新插入資料,沒毛病;于是查了很多關于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());      

這個坑,要注意。