当前位置:  开发笔记 > 编程语言 > 正文

Sqlite + Java:表没有更新

如何解决《Sqlite+Java:表没有更新》经验,为你挑选了1个好方法。

我正在使用SQLite的Java包装器,称为SQLiteJDBC - 这可能会对任何答案产生影响......

我有一个表格,我已经在GUI中显示,在该UI中,我有一个按钮,用于该表的单个行的字段.当我保存更改时,我这样做......

Statement stmt = connection.createStatement();
stmt.execute("update 'tableName' set 'fieldName'=1 where userid=1");

int updateCount = stmt.getUpdateCount();

我的连接有效,我没有抛出异常,getUpdateCount()返回'1'表示已经更新了一行.但是我的表格没有更新.我花了最后几个小时试图弄清楚发生了什么,但我没有运气.救命!!

UPDATE

问题似乎是它没有做出我所做的改变.在应用程序运行时,我的更改是可见的,但只要我关闭应用程序并重新打开它或直接检查数据库,我的更改就会丢失,我们又回到原点.这是怎么回事??!

自动提交设置为true,如果我将其设置为false并尝试提交,则会抛出异常.



1> Ben L..:

我的问题是我依靠垃圾收集器来清理我使用过的ResultSet,我没有明确地关闭它们.

在SQLite中访问一个表会锁定整个数据库,因此这些使用仍然"打开"的ResultSet会阻止我在读取其内容后获得对表的写访问权.

如果您遇到此问题并且正在使用SQLite,则只需在完成后调用每个ResultSet上的close().(您可能也想尝试对任何PreparedStatements执行相同操作,我假设这些也会关闭他们用于创建的任何ResultSet,但我还没有尝试验证这一点.)

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有