我在java SE中編程,當嘗試訪問以創建與mysql的連接時出現錯誤。我可以連接到mysql,實際上,運行bucle時顯示錯誤。
我在這個程序中做的是檢查我的數據庫顏色表中的字符串,如果它找不到任何東西,它會在表中創建一個帶有自動增量ID的字符串。
它工作正常,但檢查一段時間後,它給了我錯誤。
我附上錯誤的圖像和創建連接的代碼。
驅動程序無法創建到mysql的連接
public Integer codiColor(String col){
Integer codi=null;
if(col.equals(""))
return 1;
try {
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url, usuari, password);//here is the error
try {
Statement st = con.createStatement();
String sql = "SELECT CODICOL FROM COLORES where COLOR ='"+col+"'";
ResultSet res = st.executeQuery(sql);
if(res.next()){
codi = res.getInt("CODICOL");
}
try { res.close(); } catch (Exception e) {}
try { st.close(); } catch (Exception e) {}
}
catch(SQLException s){
JOptionPane.showMessageDialog(null, "Error:\n"+s.getMessage(),
"ERROR.",JOptionPane.ERROR_MESSAGE);
}
finally{
try { con.close(); } catch (Exception e) {}
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
return codi;
}
該代碼是檢查如果顏色已經存在與否的一個。
編輯:
url = "jdbc:mysql://192.168.1.200:3306/mybbdd?zeroDateTimeBehavior=convertToNull";
檢查沒有用netstat -an命令和比較,我使用的是Windows用ulimit – Shriram
的限制,這可能打開的套接字做到這一點?從未做過 – danibg
您正在爲每次通話創建一個新的連接,但似乎舊的連接並未妥善處理。你應該使用某種「持久連接」。 – jkavalik