java - Mysql 连接关闭时出现错误 "Operation not allowed after ResultSet closed"

标签 java mysql sql jdbc

我从我的应用程序的其他部分调用这个类并且它工作正常。但是我想关闭每一个已经打开的 mysql 连接。

这是我连接到我的数据库的类:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;





public class BACENGQueryDatabases {
    public String Query;


    public BACENGQueryDatabases(String Query){
        this.Query = Query;
    }

    public ResultSet LoadQuery() throws Exception{  

    // Accessing Driver From Jar File
    Class.forName("com.mysql.jdbc.Driver");

//Get credentials from Property file
BACENGPropertiesFile user = new BACENGPropertiesFile("user.cred");
BACENGPropertiesFile passwd = new BACENGPropertiesFile("passwd.cred");
BACENGPropertiesFile database = new BACENGPropertiesFile("database.system");
BACENGPropertiesFile DBServer = new BACENGPropertiesFile("DBServer.system");
BACENGPropertiesFile DBPort = new BACENGPropertiesFile("DBPort.system");

Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;


//DB Connection

          con = DriverManager.getConnection("jdbc:mysql://"+DBServer.properties()+":"+DBPort.properties()+"/"+database.properties()+"",""+user.properties()+"",""+passwd.properties()+"");       
    //DB Connection
           String sql =Query; 
           pst = con.prepareStatement(sql);
    //System.out.println(sql); //Just to test

          rs=pst.executeQuery();

     con.close();
    return rs;


    }

}

当我尝试关闭连接槽时出现问题:

con.close();

然后,输出是:

"Operation not allowed after ResultSet closed"

最佳答案

当您像在代码中那样关闭 Connection 时,从该连接创建的任何依赖对象(如 ResultSet)也会关闭。只要您需要结果集,您就需要保持连接打开,使用 CachedRowSet 或在返回之前将结果集的内容传输到其他内容。

关于java - Mysql 连接关闭时出现错误 "Operation not allowed after ResultSet closed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21182670/

相关文章:

java - "Bad version number in .class file"是否有 Maven 插件来检查此错误?

java - 如何从@String获取android非上下文类中的String

mysql - 连接两个表时在mysql中查找重复值

mysql - 为快速计数优化 MySQL 数据库

mysql - 将重复的匹配对分组到一个组中 - SQL

mysql - 根据列的总和更新最旧的行

php - MySQLi 使用 IN 运算符准备语句

java - 使用 BCEL 调用方法

Java启动线程问题

php - 使用ajax实时获取mysql新记录