① java.sql.SQLException: 無效的列索引 救命啊。help
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+「%」);
② java跑一段時間後就報:Caused by: java.sql.SQLException: 無法從套接字讀取更多的數據。
引起這種錯誤的原因很多,幾點建議:
1、檢查程序,優化資料庫操作及SQL語句,如該關閉的資料庫鏈接要及時關閉、查詢語句該簡化的簡化;
2、檢查網路狀況,排除網路原因;
3、調整資料庫配置參數,比如:會話超時時間、每秒最大連接數、最大連接數等等;
4、看看資料庫的版本,有沒有升級的可能,也許會解決這個問題;