作者liu2007 (薯)
看板java
标题[问题] JDBC 出现 database is locked的错误
时间Sun Aug 25 13:38:04 2019
※状况概述:
之前开始学习使用JDBC
也写了一个程式出来能够顺利写入与读取
今天又写了一个新的,对於建立Table与写入的方式基本上都没变
可是不知道为什麽却跑出database is locked的讯息
我的程式也没没用多线程
DB Browser也关掉了
程式里连续建立三个Table也没问题
想不明白为什麽会被Lock住
除虫了好久还是除不了
只好上来求救.....
这个程式只是把丢进来的LinkedList的每个元素里的资料写入资料库的程式
main 里面对於我丢上来的这个class的动作
仅仅是new 出来,然後call insertGallery 这个方法
执行的时候程式卡在 insertGallery 方法里的 stmt.execute(); 这行
※程式码:
https://pastebin.com/r9DzjjV8
※错误讯息:
org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked
(database is locked)
at org.sqlite.core.DB.newSQLException(DB.java:941)
at org.sqlite.core.DB.newSQLException(DB.java:953)
at org.sqlite.core.DB.execute(DB.java:854)
at
org.sqlite.jdbc3.JDBC3PreparedStatement.execute(JDBC3PreparedStatement.java:56)
at DataBase.insertGallery(DataBase.java:43)
at hello.scanningTags(hello.java:45)
at hello.main(hello.java:19)
※补充说明:
--
If a child on the street who has nothing is willing to share,
why are we who have everything still so greedy?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.192.227.117 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1566711488.A.B17.html
※ 编辑: liu2007 (123.192.227.117 台湾), 08/25/2019 13:38:35
1F:→ maxima: 1.你的连线没有关过 con.close() 2. stmt也必须关闭 08/25 14:23
3F:→ maxima: 都加上 close 程式後再试看看? 而且我猜蚬仔卡住是因为没 08/25 14:26
4F:→ maxima: 有关闭连线造成Exceptions 又没有rollback 才会卡死table 08/25 14:26
5F:→ maxima: *现在 08/25 14:27
7F:→ liu2007: 感谢m大,我工作结束後回电脑前研究看看 08/25 14:36
感谢,真的是没有close的关系,我以为只有connection要close
没想到rs 和 stmt 也有close 以及其之必要
非常感谢
※ 编辑: liu2007 (123.192.227.117 台湾), 08/25/2019 15:57:41
8F:推 GGing: 觉得 close 很烦可以考虑用 JdbcTemplate 08/29 06:17