java - ResultSet.next() 抛出 SQLException : Result Set Closed

标签 java ms-access jdbc

我尝试调试代码并阅读 Oracle 文档,但没有发现结果集被关闭的任何原因。

 Statement statement = DatabaseConnector.connect();
    String sql = "Select * from Room where Room_Type like '*"+roomType+"*' "+availability;
    boolean foundResults = statement.execute(sql);
    if(foundResults){
    ResultSet rs = statement.getResultSet();
    StringBuilder row = new StringBuilder();
    if(rs!=null){
    while(rs.next()){

最佳答案

回复:SQLException

我不太确定 DatabaseConnector 在问题代码中应该做什么,但以下测试代码对我有用。

RE:通配符

当在 Access 应用程序本身的查询中使用 LIKE 运算符时,则星号 * 是要使用的通配符。当从其他应用程序查询 ACE (Access) 数据库时,需要使用“标准”百分号 % 通配符。请注意,以下代码使用 %;使用 * 在这里不起作用。

import java.sql.*;

public class JDBCQuery {
    public static void main( String args[] )
    {
        try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection conn = DriverManager.getConnection(
                    "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};" + 
                    "Dbq=C:\\Users\\Public\\Database1.accdb;");
            String RoomTypeToMatch = "suite";
            PreparedStatement s = conn.prepareStatement(
                    "SELECT Room_No, Room_Type " +
                    "FROM Room WHERE Room_Type LIKE ?"
                    );
            s.setString(1, "%" + RoomTypeToMatch + "%");
            s.execute();
            ResultSet rs = s.getResultSet();
            if (rs!=null)
            {
                while (rs.next())
                {
                    System.out.println("[Room_No]: " + rs.getString(1) +
                            ", [Room_Type]: " + rs.getString(2));
                }
            }
            s.close();
            conn.close();
        }
        catch( Exception e ) {
            e.printStackTrace();
        }
    }
}

关于java - ResultSet.next() 抛出 SQLException : Result Set Closed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16375641/

相关文章:

Java 错误 - 源文件错误 : file does not contain class x . 请删除或确保它出现

ms-access - Access 查询——一个字段是否包含另一字段的值

excel - 从剪贴板复制到VB中的数组

java - WebRowSet 的问题

java - 文件未找到异常 --- 将文件引用传递给 RMI 客户端时出现问题

java - 如何在java中将矩阵添加到ArrayList

java - 如何通过 JDBC 从 MS Access "Attachment"字段检索文件?

java - 从 jTextField Java 获取 SQL 表名称

java - 通过jdbc批量插入记录时内存不足

java - JMenu 重复