3

我正在用 Java 编写一个多线程服务器,它将访问数据库并返回有关客户端请求的数据库的信息。

我的主服务器类被编写为一个静态类,当客户端连接到它时,它基本上会产生一个线程。

我的问题是把所有的数据库访问方法放在哪里?它们应该位于静态主服务器类中还是应该放在服务器线程代码中?

感谢所有答案/解释!

4

2 回答 2

1

它应该保存在螺纹部分。因为如果你在静态服务器类中使用访问方法,那么为数据库交互创建的会话对象将成为线程不安全的。您的数据库可能会出现不一致的情况。

建议将数据库连接部分保存在线程代码中。使用线程池是个好主意。您可以调整数据库密集型应用程序的性能。以下是 oracle 关于此问题的两个重要文档。

  1. http://docs.oracle.com/cd/E19159-01/819-3681/abehq/index.html
  2. http://docs.oracle.com/cd/E19159-01/819-3681/abehs/index.html
于 2013-05-30T09:42:27.127 回答
1

打开和关闭数据库连接不是最好的主意。尝试使用线程池重用线程(及其连接)。

还有一些数据库系统不能有多个(写)连接。Sqlite 就是其中之一。在这种情况下,您可以使用静态同步方法来访问数据库。

于 2013-05-30T10:18:32.573 回答