我目前正在编写一个可在Windows Server 2008上运行的Windows服务。 我的高考和我正在讨论一个特别的问题。与数据库的连接。
我们都有不同的方式,我们想知道你对它的看法。 基本上,服务启动一个线程,该线程向数据库发送查询以检查具有特定状态的行(例如ST005)。将返回具有该状态的所有行。我们收到的数据将被处理,最后将更新行。
基本上我们一旦执行查询,然后为每一行执行更新。多个线程可以同时运行。编码没有问题,但这是我们似乎并不真正同意的结构。
我们拥有的类是控制器,DAO和数据库类。
方式#1:
控制器创建一个DAO类来处理查询。该DAO类使用其参数构建sql语句,然后创建一个数据库类,该类打开连接,执行查询,返回结果集,然后关闭连接。
这样,每次请求查询或更新时都会有新的连接。
方式#2:
控制器创建一个数据库类(数据库类现在提供了两个新方法connect()和disconnect()。然后控制器调用connect()语句并创建一个DAO类并将数据库类提供为DB类的构造函数的参数.DAO类使用其参数构建sql语句,然后处理数据。
这样,在线程的整个生存期期间只有一个数据库类。在整个线程期间,打开相同的连接,并且仅在线程生命周期结束时关闭。
这里最好用什么方式?似乎有多个连接似乎是一种不好的做法,或者我们在这里错了?任何有关这方面的见解将不胜感激。
此致 弗洛
答案 0 :(得分:3)
使用连接池,几乎可以肯定是由您的DBMS供应商提供的,并让它找出最佳策略。结束讨论。