我正在开发一个 WebApp,想知道在方法之间共享 JDBC 连接对象是否有任何优点/缺点
所以情况是
- 它是一个 WebApp 和多用户环境(大约 1000 个用户同时使用)
- 我正在使用支持连接池的容器(Weblogic Server)
- 我在 JDBC 调用中使用事务
- 我的大多数 JDBC 调用都是单记录插入/更新,但选择/删除可以批量发生
现在我有两种方法
方法 1 打开连接对象一次并在方法间中继它
// Just a Pseudo Code
Cn = OpenJDBConnection() // This will open up the connection
obj.Task1(Cn, Param1, Param2);
obj.Task2(Cn, Param1, Param2);
obj.Task3(Cn, Param1, Param2);
Cn.close();
方法2 在每种方法中打开和关闭连接
我倾向于方法 1,因为这样我就可以避免一些样板代码。但我不确定它是否是线程安全的?我有一个 100 个连接的池大小,我认为这对于在给定时间活跃的 1000 个用户来说是可以的
在采用其中一种方法之前,我还有什么需要考虑的吗