c# - 声明连接变量

标签 c# java php c++

我想知道使用以下 Connection 变量的哪种方法安全且更好。

首先:连接作为类的类成员变量

class MyClass
{
    Connection conn;

    public MyClass(Connection conn) {
        this.conn = conn;
    }

    public void myMethod(){
        //Do some DB operations using conn
    }
}

第二:在方法中初始化连接

class MyClass
{       
    public MyClass() {      
    }

    public void myMethod(){
        Connection conn= initializeFunction(); //Initialize Connection
        //Do some DB operations using conn
    }
}

第三:将连接作为参数发送给函数

class MyClass
{       
    public MyClass() {      
    }

    public void myMethod(Connection conn){
        //Do some DB operations using conn
    }
}

注意:问题不是特定于编程语言的,因此我也添加了 Java 以外的标签。

最佳答案

这三种方法都提供了不同的功能:

  1. 您的类拥有连接对象,只要您的对象保持 Activity 状态,连接对象就会保持 Activity 状态。
  2. 连接对象是方法的本地对象,一旦方法返回就过期。
  3. 方法的调用者拥有连接对象。

选择取决于:

  • 您想如何处理连接对象的所有权 &
  • 您需要记住,数据库连接只需要在需要时打开,而不是一直打开,同时,
  • 您希望多久连接一次数据库。

关于c# - 声明连接变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12722390/

相关文章:

c# - 表达式选择方法

c# - HTMLAgilityPack 中的 XPath 选择不能按预期工作

java - 双代理接口(interface) : Could not generate CGLIB subclass of class 时 Spring AspectJ 失败

java - 没有jsp的Spring安全

c# - 在 MVC 中返回带有 404 状态码的自定义 404 页面?

c# - 在 Windows 7/.Net 4.0 上将多页 Tiff 拆分为单个 Tiff

java - 更改托管 bean 的呈现属性

c# - 如何在 C# 中连接到 mysql 数据库并模拟 SELECT、UPDATE 和 INSERT 函数

php - JSON 响应中未定义的属性

php - 如何在 Azure 应用程序内显示从 Ajax 调用的 PHP 消息