【问题标题】:How does MySQL deal with connection per second, then decide to block connections?MySQL如何处理每秒连接数,然后决定阻止连接?
【发布时间】:2016-11-28 22:46:35
【问题描述】:

我正在编写一个 Java 数据库程序,在这个程序中我有一个循环,它调用大约 6 个方法,在每个方法中,一个与 MySQL 的连接独立于其他连接建立,以返回一个布尔值,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 来延迟事情,但没有奏效。

【问题讨论】:

  • 显示相关代码会很有帮助,例如“每个函数如何创建一个名为 c 的连接”,但即使在你这样做之前,我也会说,正如你所怀疑的那样,这不是一个好方法做这种事。
  • @rmlan 感谢您的回复,我发现了问题,我将其发布为答案。

标签: java mysql sql netbeans


【解决方案1】:

我发现了问题,它在 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;
    }

【讨论】:

    猜你喜欢
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2013-11-29
    • 1970-01-01
    相关资源
    最近更新 更多