Java.sql.SQLException:监听器拒绝连接时出现以下错误:ORA-12518执行60以上时选择

时间:2014-04-26 16:40:26

标签: java oracle

我在java中创建项目时遇到问题,我在oracle上连接到我的本地数据库,这就是我连接到数据库的方式。

conexion = "jdbc:oracle:thin:@localhost:1521:XE"; 
this.usuario = "System";
this.password = "hereThePassword";
Class.forName( "oracle.jdbc.driver.OracleDriver" );
conn = java.sql.DriverManager.getConnection(conexion,usuario,password);

这就是我在数据库上执行查询的方式。

ejecutarConsulta(String sql){
  Class.forName( "oracle.jdbc.driver.OracleDriver" );
  conn = java.sql.DriverManager.getConnection(conexion,usuario,password);
  stmt = conn.createStatement();
  rs = stmt.executeQuery( sql );
}

我需要在一个循环中执行超过200个选择(for)这里是代码:

conexionBD BD = new conexionBD();
for(int i = 0; i < 500;i++){
        BD.ejecutarConsulta("select * from table");
        System.out.println(i);
    }

前66个查询正常,没有问题,我可以看到,当我在选择号码67上时,我得到一个异常,出现以下错误:

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12518, TNS:listener could not hand off client connection

如何使用相同的Object BD超过200个查询?

1 个答案:

答案 0 :(得分:0)

由于问题下方的评论,发现了错误。

我正在创建一个新的连接来执行一个选择,所以我改变了这样的代码:

创建连接:

Class.forName( "oracle.jdbc.driver.OracleDriver" );
conn = java.sql.DriverManager.getConnection(conexion,usuario,password);
stmt = this.conn.createStatement();

并执行单个查询:

ejecutarConsulta(String sql){
 System.out.println( sql );
 rs = this.stmt.executeQuery( sql );
}