一个长连接或数据库的多个短连接?

时间:2011-05-16 12:43:31

标签: c# sql database-connection

我目前正在编写一个可在Windows Server 2008上运行的Windows服务。 我的高考和我正在讨论一个特别的问题。与数据库的连接。

我们都有不同的方式,我们想知道你对它的看法。 基本上,服务启动一个线程,该线程向数据库发送查询以检查具有特定状态的行(例如ST005)。将返回具有该状态的所有行。我们收到的数据将被处理,最后将更新行。

基本上我们一旦执行查询,然后为每一行执行更新。多个线程可以同时运行。编码没有问题,但这是我们似乎并不真正同意的结构。

我们拥有的类是控制器,DAO和数据库类。

方式#1:

控制器创建一个DAO类来处理查询。该DAO类使用其参数构建sql语句,然后创建一个数据库类,该类打开连接,执行查询,返回结果集,然后关闭连接。

这样,每次请求查询或更新时都会有新的连接

方式#2:

控制器创建一个数据库类(数据库类现在提供了两个新方法connect()和disconnect()。然后控制器调用connect()语句并创建一个DAO类并将数据库类提供为DB类的构造函数的参数.DAO类使用其参数构建sql语句,然后处理数据。

这样,在线程的整个生存期期间只有一个数据库类。在整个线程期间,打开相同的连接,并且仅在线程生命周期结束时关闭。

这里最好用什么方式?似乎有多个连接似乎是一种不好的做法,或者我们在这里错了?任何有关这方面的见解将不胜感激。

此致 弗洛

1 个答案:

答案 0 :(得分:3)

使用连接池,几乎可以肯定是由您的DBMS供应商提供的,并让它找出最佳策略。结束讨论。