java使用derby数据库的问题
在cmd下连接、插入、查询等操作都正常,但是用java连接derby数据库时总是出现如下错误:
java.sql.SQLTransactionRollbackException:A lock could not be obtained within the time requested
private Connection getConnection() { Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); conn=DriverManager.getConnection("jdbc:derby:qq;create=true"); conn.setAutoCommit(false); return conn; } public void insert(String tName) { String sql="insert into "+tName+"(id,email,count) values(4,'dfsqq,22)"; this.excuteSQL(sql); } public boolean excuteSQL(String sql) { Statement s; conn=getConnection(); s = conn.createStatement(); s.executeUpdate(sql); s.close(); //conn.close() 会出现关闭异常,提示:连接正处于活动状态** return true; } public void close() { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Dao dao=new Dao(); dao.insert(table);//出现异常 dao.close();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
String sql="insert into "+tName+"(id,email,count) values(4,'dfsqq,22)"; 看下这条SQL是否有问题,是不是少了个“ ' ”,应该是SQL执行失败导致的回滚,数据库连接配置本身是没错的。
这样子将取消自动提交,
需要显示的调用 commit , 才能完成事务提交.
见 java api http://docs.oracle.com/javase/6/docs/...