在Java中使用JDBC进行并发访问

时间:2011-07-04 15:39:43

标签: java database session jdbc concurrency

我正在使用JDBC开发Java桌面应用程序,我想管理对数据库的并发访问。有人告诉我使用Sessions,但经过一些研究后发现桌面应用程序无法进行Sessions。

这就是为什么我要求一些帮助。你对如何管理这件事有任何想法。

由于

3 个答案:

答案 0 :(得分:4)

根据您的描述,我建议您在尝试插入或更新某些可能已被其他人更改的行时检查SQL异常。在这种情况下,您可以重新加载应用显示给用户的内容,以便他们拥有最新数据。另一种选择是显示用户友好的错误。

如果你的应用连续执行多个查询(插入,更新),我建议使用事务。我认为在桌面应用程序中设置它们的最简单方法是使用Spring框架,如果您熟悉它。

答案 1 :(得分:2)

管理并发访问的确切含义并不清楚 - 您是否希望避免对数据库进行多次选择查询?在这种情况下,使用SELECT for UPDATE可能是一个选项。如果您正在寻找更通用的方法来限制单个用户随时访问数据库,您将不得不在我想的代码中推出自己的锁定机制。

答案 2 :(得分:1)

只要每个Thread使用不同的Connection,JDBC中就不会出现任何并发问题。有很多方法可以实现这一目标。例如ThreadLocal或连接池。

我看不出许多用户如何访问单个桌面应用程序。您可以拥有许多桌面应用程序的副本,每个用户都有自己的连接。这不应该导致问题。你需要澄清你的担忧。