我在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个查询?
答案 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 );
}