jdbc--Mysql異常問題總結
阿新 • • 發佈:2020-12-07
1、java.sql.SQLException: Before start of result set
這個 SQL 異常引起異常的原因是因為 之前沒有***.next()方法;
當第一次執行***.next()的時候遊標位置在表的第一個位置,也就是說處於一個空的位置 但是如果沒有***.next() ,則這個位置是空,無法讀取到表的資料。注意:一般使用while的迴圈,如果使用for()迴圈,易出現此類問題,由於for迴圈在最後才執行***.next()的方法,將會使第一次查詢出現SQLException。
2、特殊的SQL批量刪除和模糊查詢是不能使用佔位符賦值的
delete form t_user where id in (?) x select * from t_user where username like '%?%' x
原因:當通過佔位符為字串型別的資料進行賦值時,會自動在字串兩邊加單引號。
3、首先需要在建立預編譯物件時,設定一個常量,Statement.Return_GENERATED_KEYS(值1),可以通過預編譯物件ps.getGeneratedKey
rs.next();
rs.getInt();
4、批處理
(1)在url中要加一個引數
-
rewriteBatchedStatements=true
-
那麼我們的url就變成了 jdbc:mysql://localhost:3306/test?rewriteBatchedStatements=true
-
這裡的?,表示?後面是客戶端給伺服器端傳的引數,多個引數直接使用&分割
5、Idea如果開啟後期新增的jar包中的程式碼,實現方法顯示complied code的註釋,表明沒有對原始碼進行編譯。
此時需要如下配置: