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# - 何时为成员添加 'this' (C#) 前缀的好规则是什么?

c# - "The type ' 系统.Windows.Forms.TreeNodeCollection ' has no constructors defined"

api - 什么时候应该抛出异常而不是在 PHP 中返回错误?

php安全输出

php - Symfony2 关系实体 + 形式

c# - 转换为值类型 'Double' 失败,因为具体化值为 null

c# - .NET 2.0 WebService 在 Xamarin.Forms 默认可移植解决方案中不可用

java - fragment 自行重新实例化并添加到 Activity 中

java - 是否在 UI 线程上调用了 Android.App.Application Activity 生命周期回调?

java - JDK 1.4 的简单网络服务示例