在我的java Web应用程序中,我连接到本地MySQL数据库。使用servlet我将获取csv文件并将数据插入数据库。它连接正常并且正在插入数据,但是在每次从csv文件插入后它开始逐渐减慢。当它到达csv文件中的第159行时,会抛出此异常:
抛出异常
[com.mysql.jdbc.CommunicationsException:通讯链接失败 由于潜在的例外:
java.net.SocketException异常 消息:权限被拒绝:连接
堆栈跟踪:
java.net.SocketException:Permission denied:connect
有谁知道为什么它会正常工作然后放慢速度直到它抛出此异常?我真的对此感到头疼,网上似乎没有任何帮助。顺便说一句,我使用的是tomcat8。
答案 0 :(得分:1)
正如您已经发现的那样,您获得的异常来自于打开如此多的连接以达到限制的原因。
要正确关闭与db的连接,基本上有三个步骤。
典型代码如下:
try {
//your code that is making and using jdbc is here
//after you finish
rs.close(); //if a ResultSet was returned
stmt.close(); //Close Statement
conn.close(); //Close Connection
}catch(SQLException se){
}catch(Exception e){
}finally{
//finally block used to close resources if Closing failed above
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
有关完整示例,请参阅this