JDBC連線資料庫時常見錯誤
阿新 • • 發佈:2019-02-05
(1)java.sql.SQLException: 無效的列索引
java.sql.SQLException: 無效的列索引
“無效的列索引”其實是個低階的錯誤,原因無非幾個:
1、sql串的?號數目和提供的變數數目不一致:
例如:jdbcTemplate.update(sql, new Object[] {newState,oldState});
如果sql裡面有1個?號,Object[]送了2個,就會報錯。
2、sql串裡的?號書寫不正確
英文?和中文?有時難以區分。
3、sql串的?號用''括了起來。
例如:sql="UPDATE abc SET abc.name='?' WHERE abc.id='?'";
把''去掉就可以了。
4,遇到這種情況select*from user where info like %?%;
雖然這是sql的寫法,但是在jdbc 中需要改成 select*from user where info like ?;
如ps.setString(“%”+value+“%”);
(2)ORA-00933: SQL 命令未正確結束 / ORA-00933: SQL command not properly ended
對於這個錯誤:
1.首先仔細檢查sql語句是否存在語法錯誤。
(如果確認沒有錯誤,可以拿到sql development中去用sql工具試試)
2.檢查使用連線資料庫的方法。
executeQuery、execute、executeUpdate是否存在使用錯誤,或者換個試試
3.sql語句中的‘;‘去掉。
(3)
原因是資料庫驅動版本與資料庫版本不匹配