Java 如何检查jdbc连接和dbbool连接是否达到最大值?

Java 如何检查jdbc连接和dbbool连接是否达到最大值?,java,exception,jdbc,error-handling,Java,Exception,Jdbc,Error Handling,我想知道jdbc连接异常和dbbool连接异常,以及如何避免这些异常。要正确显示错误消息,您必须在正确的位置和时间放置try和catch,总之,您可以使用java.sql.SQLException,因为它可以在驱动程序和数据库中发生 任何JDBC操作的基本和通用方案是: 1) 。登记你的司机 2) 。打开一个连接 3) 。执行查询 4) 。提取数据 5) 。关闭,关闭所有内容:结果集,语句,以及连接 这是您正确捕获错误或异常原因的方式: try{ //1).Register JDBC dri

我想知道jdbc连接异常和dbbool连接异常,以及如何避免这些异常。

要正确显示错误消息,您必须在正确的位置和时间放置
try
catch
,总之,您可以使用
java.sql.SQLException
,因为它可以在
驱动程序和
数据库中发生

任何JDBC操作的基本和通用方案是:

1) 。登记你的司机

2) 。打开一个连接

3) 。执行查询

4) 。提取数据

5) 。关闭,关闭所有内容:
结果集
语句
,以及
连接

这是您正确捕获错误或异常原因的方式:

try{
  //1).Register JDBC driver
  Class.forName("com.mysql.jdbc.Driver");

  // 2). Open a connection
  conn = DriverManager.getConnection(DB_URL,USER,PASS);

  //3). Execute a query
  System.out.println("Creating statement...");
  Statement stmt = conn.createStatement();
  String sql;
  sql = "SELECT id, first, last, age FROM Employees";
  ResultSet rs = stmt.executeQuery(sql);

  //4). Extracting datas
  while(rs.next()){
    .................
.............
  }
  //5).close everything
   rs.close();
   stmt.close();
   conn.close();
     } catch(SQLException se){
          //Handle errors for JDBC
           se.printStackTrace();
    }  catch(Exception e){
         //Handle errors for Class.forName / JDBC driver
          e.printStackTrace();
   }finally{
    //finally block used to close resources
    try{
        if(conn!=null)
             conn.close();
          } catch(SQLException se){
                se.printStackTrace();
              }//end finally try
    }//end try
关于JDBC连接池,您可以查看下面提供的链接:


要正确显示错误消息,您必须将
try
catch
放在正确的位置和时间,总结一下,您可以使用
java.sql.SQLException
,因为它可能发生在
驱动程序和
数据库中

任何JDBC操作的基本和通用方案是:

1) 。登记你的司机

2) 。打开一个连接

3) 。执行查询

4) 。提取数据

5) 。关闭,关闭所有内容:
结果集
语句
,以及
连接

这是您正确捕获错误或异常原因的方式:

try{
  //1).Register JDBC driver
  Class.forName("com.mysql.jdbc.Driver");

  // 2). Open a connection
  conn = DriverManager.getConnection(DB_URL,USER,PASS);

  //3). Execute a query
  System.out.println("Creating statement...");
  Statement stmt = conn.createStatement();
  String sql;
  sql = "SELECT id, first, last, age FROM Employees";
  ResultSet rs = stmt.executeQuery(sql);

  //4). Extracting datas
  while(rs.next()){
    .................
.............
  }
  //5).close everything
   rs.close();
   stmt.close();
   conn.close();
     } catch(SQLException se){
          //Handle errors for JDBC
           se.printStackTrace();
    }  catch(Exception e){
         //Handle errors for Class.forName / JDBC driver
          e.printStackTrace();
   }finally{
    //finally block used to close resources
    try{
        if(conn!=null)
             conn.close();
          } catch(SQLException se){
                se.printStackTrace();
              }//end finally try
    }//end try
关于JDBC连接池,您可以查看下面提供的链接:


这实际上取决于您使用的池库

如果您使用的是Apache Commons池,则设置
BaseGenericObjectPool.setBlockWhenExhausted(false)


然后调用
GenericObjectPool.borrowObject(long-borrowMaxWaitMillis)
将抛出
NoTouchElementException

这实际上取决于您使用的池库

如果您使用的是Apache Commons池,则设置
BaseGenericObjectPool.setBlockWhenExhausted(false)


然后调用
GenericObjectPool.borrowObject(long-borrowMaxWaitMillis)
将抛出一个
NoTouchElementException

如果您正在使用Apache Commons池库,GenereObjectPool提供两种方法:

getMaxActive() returns the amount of allowed Connections

getNumActive() returns the number of actually used Connections

如果选中getMaxActive()>getNumActive(),则可以在不捕获异常的情况下实现需求

如果您正在使用Apache Commons池库,GenereObjectPool提供两种方法:

getMaxActive() returns the amount of allowed Connections

getNumActive() returns the number of actually used Connections

如果选中getMaxActive()>getNumActive(),则可以在不捕获异常的情况下实现需求

你能说得更具体些吗?你到底有什么问题?您尝试了什么?如果我有10个JDBC连接,并且这些连接处于活动状态。当我尝试创建新连接时,我应该捕捉正确的异常并显示正确的错误消息,而不是显示错误使用静态连接,然后使用一个连接。就像使用一根水管从井里取水。如果打开连接并关闭连接,就像使用一根管子,但放入一根管子取水并拔出。再次输入管子,然后取水若你们打开连接而不关闭,你们就用管道填满你们的井。最好的方法是使用静态连接。你们能更具体一点吗?你到底有什么问题?您尝试了什么?如果我有10个JDBC连接,并且这些连接处于活动状态。当我尝试创建新连接时,我应该捕捉正确的异常并显示正确的错误消息,而不是显示错误使用静态连接,然后使用一个连接。就像使用一根水管从井里取水。如果打开连接并关闭连接,就像使用一根管子,但放入一根管子取水并拔出。再次输入管子,然后取水拆下它,依此类推。若你们打开连接而不关闭,你们就用管道填满你们的井。最好的方法是使用静态连接