我正在编写一个Java数据库程序,在这个程序中我有一个调用大约6个方法的循环,在每个方法中,与其他连接独立地建立连接,以便返回一个布尔值,while循环运行20次(行数为20),因此(6 * 20 = 120)连接在该循环中进行,问题是,在第14次或第19次迭代后,我从MySQL得到此错误:
Exception in thread "main" java.lang.NullPointerException
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
此外:at project_2.Reserve.inLarge(Reserve.java:116)
第116行包含:
Statement s = c.createStatement();
其中c是连接类型(即MySQL Java连接类型)。
每个函数都会创建一个名为c的连接及其'自己的声明。
我没有参与MySQL,所以我希望有些人会告诉我这是一种可怕的方式,然后对我大喊大叫......开个玩笑,谢谢你的帮助。
我也尝试添加thread.sleep来推迟一些事情,但它没有用。
答案 0 :(得分:0)
我发现了问题,就是在get_conn()函数中,我有两次这样的行,所以很明显它在mysql服务器DriverManager.getConnection(conn_str,username,pass);
上有点难:
public static Connection get_conn (){
Connection conn=null;
try{
conn =(Connection) DriverManager.getConnection(conn_str,username,pass);
conn =(Connection) DriverManager.getConnection(conn_str,username,pass);
}catch (SQLException e){
System.out.println(e);
}
return conn;
}