当两个Java桌面应用程序使用相同的SQLite数据库时,如何避免sql异常

时间:2011-11-18 23:06:00

标签: java sqlite concurrency

我看到了一些关于此的答案,但他们没有指出我的方向。

写入SQLite时,所有并发读/写将throw exception 这对我的设置来说是一个问题,因为我有:

java后台服务
java桌面gui应用程序

两者都在同一台计算机上访问同一个SQLite 是否有一些全球Singelton设置来处理这个问题。

任何想法都会被扼杀

1 个答案:

答案 0 :(得分:1)

来自sqlite4java page

  

单线程模型 - 每个SQLite连接仅限于一个线程,所有调用必须来自该线程。申请可以   从不同的线程打开到同一数据库的多个连接。   与SQLite的Serializable隔离级别一起,此功能   有助于编写非常干净和可预测的代码。

所以你需要:

  • 有一个与SQLite对话的专用线程
  • 为每个帖子打开一个新连接