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

时间:2015-12-01 01:39:58

标签: 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;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

指定ResultSet.CONCUR_UPDATABLE并且无法关闭ResultSet会对所涉及的表产生锁定。由于您实际上并未更新ResultSet,因此可以省略该选项(从而使用默认的ResultSet.CONCUR_READONLY)来避免此问题。