1. 程式人生 > 資料庫 >jdbc--Mysql異常問題總結

jdbc--Mysql異常問題總結

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的註釋,表明沒有對原始碼進行編譯。
在這裡插入圖片描述
此時需要如下配置:
在這裡插入圖片描述