1
11
(是评论) 理论上,您不应该从业务逻辑访问数据库——它应该在一个单独的数据访问类中。(例如,将来需要以XML脱机存储它们,或者使用Oracle而不是SQL Server…您不想重新编写业务逻辑!) 业务对象不应具有与其关联的数据库连接。连接应该以某种DAL工厂类型的方法打开,检索/构建对象,然后关闭连接并返回对象。 业务对象本身应该包含业务逻辑字段和方法,这些字段和方法可能会回调到数据访问层,后者应该为每个DAL方法创建一个新的数据库连接。 你的低效恐惧可以通过使用连接池来消除,这意味着如果你打开和关闭一个连接数百次,它们都有可能使用同一个连接。但是您不应该让数据库连接一直挂在周围,尤其是作为类的成员。 希望有帮助! |
2
8
我的理解是,只要需要,联系就应该保持开放。大多数时候我在使用语句时都看到了连接,类似于
|
3
7
此链接可能有帮助: Best Practices for Using ADO.NET 这是一个有趣的摘录。
我一直遵循在using块中打开连接的实践,因此总是调用Dispose方法(因此也调用Close方法),而不必担心它。使用这种方法,我从来没有遇到过这样一种情况,即性能不佳与过多的并发连接或过多的设置或关闭操作有关。 |
4
6
在回答这两个问题时,如果您使用的是具有连接池的内容,如ado.net,则应将查询编码为使连接保持打开状态
尽可能短
. 即。
|
Julian · 用于创建JasperReport后未释放池连接 6 年前 |
muhammad obaid · 使用oracle数据库登录 6 年前 |
user5443928 · 如何使用PHP将其他类对象调用到其他类函数 6 年前 |
C-lio Garcia · 节点js上不同服务器的MySQL连接 6 年前 |
Ilan · 如何处理MAMP中的“通信异常:通信链路故障”?[副本] 6 年前 |
reakt · 从C连接到IBM DB2 10.1# 6 年前 |
ProgLover · 连接mysql时出现Laravel问题 6 年前 |