[問題][已解決] JDBC 出現 database is locked的錯誤

作者: liu2007 (è–¯)   2019-08-25 13:38:04
※狀況概述:
之前開始學習使用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)
※補充說明:
作者: maxima (天雨焰)   2019-08-25 14:23:00
1.你的連線沒有關過 con.close() 2. stmt也必須關閉https://www.cnblogs.com/jfqiu/p/3197014.html都加上 close 程式後再試看看? 而且我猜蜆仔卡住是因為沒有關閉連線造成Exceptions 又沒有rollback 才會卡死table*現在https://www.itread01.com/p/327592.html
作者: liu2007 (è–¯)   2019-08-25 14:36:00
感謝m大,我工作結束後回電腦前研究看看
作者: GGing (小軒軒)   2019-08-29 06:17:00
覺得 close 很煩可以考慮用 JdbcTemplate

Links booklink

Contact Us: admin [ a t ] ucptt.com