Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当两个java桌面应用程序使用相同的SQLite db时,如何避免sql异常_Java_Sqlite_Concurrency - Fatal编程技术网

当两个java桌面应用程序使用相同的SQLite db时,如何避免sql异常

当两个java桌面应用程序使用相同的SQLite db时,如何避免sql异常,java,sqlite,concurrency,Java,Sqlite,Concurrency,关于这一点,我看到了一些答案,但它们并没有指向我的方向 当写入SQLite时,所有并发读/写操作将抛出异常 这将是我的设置的一个问题,因为我有: java后台服务 java桌面gui应用程序 两者都在同一台计算机上访问同一个SQLite。 是否有一些全球Singelton设置来处理此问题 任何IDE都将从以下位置删除: 单线程模型-每个SQLite连接仅限于一个线程,所有调用都必须来自该线程。申请可以 从不同线程打开多个到同一数据库的连接。 除了SQLite的可序列化隔离级别之外,该特性 有助于

关于这一点,我看到了一些答案,但它们并没有指向我的方向

当写入SQLite时,所有并发读/写操作将
抛出
异常

这将是我的设置的一个问题,因为我有:

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

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

任何IDE都将从以下位置删除:

单线程模型-每个SQLite连接仅限于一个线程,所有调用都必须来自该线程。申请可以 从不同线程打开多个到同一数据库的连接。 除了SQLite的可序列化隔离级别之外,该特性 有助于编写非常干净和可预测的代码

因此,您需要:

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

您使用什么驱动程序访问SQLite?听起来您只需要打开“我想使用sqlite4java”。有那么简单吗,good@Brendan多谢,我会读到这篇文章的。听起来我应该使用Singleton类来连接db。你怎么认为?。刚刚发现这个例子:@Erik-如果你从多个线程访问它,一个单线程就不起作用了。我实际上没有多个线程。另一件事是,我有两个java应用程序。你说打开并发特性。这是否意味着如果另一个java应用程序具有写锁,我的“读/写”将被同步并进入等待模式。@Erik-听起来您正在使用的库在默认情况下可以使用两个使用相同数据库的程序,是的,它将使用某种锁。