使用 UCanAccess 保存数据时 Java 应用程序挂起

标签 java sql ucanaccess

我有一个程序可以将学生信息存储到 Microsoft 访问数据库中 我使用 ucanaccess、jre 1.8 和 jdk 1.8 但是我直接写入数据库的数据可以显示在我的程序中 但是我在程序中输入的数据无法写入数据库,它只是在我将数据保存到数据库的那一刻卡住

这是我的连接类

class myConnection{
    ResultSet re;

        String strurl = "jdbc:ucanaccess://student.accdb";

    public myConnection(){}
    public ResultSet getResult(String sql){
        try{
        Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");

            Connection conn=DriverManager.getConnection(strurl);

            Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
            ResultSet re=stmt.executeQuery(sql);
            return re;
        }
        catch(Exception e){
            System.out.println("getResult------"+e.toString());
            return null;
        }
    }

    public boolean executeSql(String sql){
        try{
        Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");

            Connection conn=DriverManager.getConnection(strurl);
            Statement stmt=conn.createStatement();
            stmt.executeUpdate(sql);
            conn.commit();
            return true;
        }
        catch(Exception e){
            System.out.println("executeSql----"+e.toString());
            return false;
        }
    }
}

最佳答案

指定 ResultSet.CONCUR_UPDATABLE 并且无法关闭 ResultSet 会在相关表上留下锁。由于您实际上并未更新 ResultSet,因此您可以简单地省略该选项(从而使用默认的 ResultSet.CONCUR_READONLY)来避免该问题。

关于使用 UCanAccess 保存数据时 Java 应用程序挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34011186/

相关文章:

sql - 在 SQL Server 中使用 'Pivot' 将行转换为列

java - ucanaccess 太慢

java - 不使用 UCanAccess 从 Java 8 连接到 Access 数据库

java - 更改 Eclipse 插件中菜单项的属性?

java - 运行服务器时出现 BeanCreationException

JavaFX:使 LocalDateTime 触发事件?

java - TCP 连接,serversocket.accept 运行时不会创建套接字

sql - 在 Delphi 中显示 SQL 查询的进度

mysql - 如何获得过去 30 天内超过 1000 美元的用户?每个用户过去 30 天的数据。 SQL有限制

java - 使用 UCanAccess 和 Apache Commons Net 从远程服务器中的数据库读取