【发布时间】:2015-12-01 01:39:57
【问题描述】:
我有一个程序可以将学生信息存储到 Microsoft accesss 数据库中 我使用 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;
}
}
}
【问题讨论】:
-
您的代码有问题,没有理由打开 CONCUR_UPDATABLE 结果集,既不使用结果集更新功能,也不在呈现后关闭结果集。您只是在 dbms 上显式创建了一个锁。使用 Statement stmt=conn.createStatement()(不带参数),它会起作用。
-
谢谢jamadei,你帮我解决问题,我认为lock dbms是个好主意
-
但是现在当我将数据保存到数据库时出现问题错误-->net.ucanaccess.jdbc.UcanaccessSQLException: 用户缺少权限或找不到对象:
-
所以你的sql也是错误的。可以发一下吗?
标签: java sql ucanaccess