在java中使用多数据库连接的有效方法

时间:2011-07-03 13:22:40

标签: java database swing connection

为每个数据库操作打开数据库连接并因此关闭是否是有效的方法 或者在启动时打开连接并继续为多个操作调用相同的打开连接,并在完成所有活动后关闭它。 ?

我正在创建一个Java Swing应用程序,其中我有一个主框架并使用卡布局我选择不同的面板,并且每个面板都有不同的数据库操作来执行。目前我正在为每个面板打开单独的连接,所以当我打开我的主应用程序时,多个连接被打开和关闭。

因为我想确定我做的是正确的事情,并避免任何不良做法和性能瓶颈,所以我向Java专家提出这个问题。

请建议。谢谢你的帮助。

3 个答案:

答案 0 :(得分:6)

不,不建议为每个数据库事务“创建”新连接。创建连接通常很昂贵。尝试使用连接池来抽象连接打开和关闭语义。这样,您的应用程序可以调用Connection#close等,并且在幕后,池将抓取并相应地返回到连接轮询的连接。那里有很多解决方案; DBCP,C3P0或BoneCP。

答案 1 :(得分:1)

如果您有连接池,您当然可以为每个操作使用连接。创建连接的成本很高,但通过汇集它们来分摊所有操作的成本使其成为可能。

您应该获得连接,使用它,并在每个操作中将其返回到池中,尽可能在最小的范围内。

答案 2 :(得分:0)

连接数据库是一项相对昂贵的操作。通常你要做的是使用连接池。连接池包含可供您使用的数据库连接集合。您可以从池中获取连接,通过该连接进行查询,然后将其返回到池中(通常通过关闭连接来完成)。连接池将负责在后台建立与数据库的新连接,这样当您需要连接时,您就不需要花时间等待连接。