gpt4 book ai didi

class - 在 Dao 类中使用静态方法还是非静态方法?

转载 作者:行者123 更新时间:2023-12-03 23:29:05 25 4
gpt4 key购买 nike

嗨,我为一些数据库操作生成了 Dao 类

以这种方式将 Dao 类的方法设为静态还是非静态更好?

使用下面的示例 dao 类,如果不止一个客户端必须同时使用 AddSampleItem 方法?这可能会导致什么结果?

public class SampleDao
{
static DataAcessor dataAcessor

public static void AddSampleItem(object[] params)
{
dataAcessor =new DataAcessor();
//generate query here
string query="..."
dataAcessor.ExecuteQery(query);
dataAcessor.Close();
}

public static void UpdateSampleItem(object[] params)
{
dataAcessor =new DataAcessor();
//generate query here
string query="..."
dataAcessor.ExecuteQery(query);
dataAcessor.Close();
}
}

最佳答案

这将导致大困惑。如果你同时从不同的线程添加 2 个项目,你肯定会得到非常奇怪的结果,如果一个线程关闭了 DataAcessor,甚至会出错。在另一个完成之前。

我会使用本地 DataAcessor或者创建一个新的并在所有方法中使用它,具体取决于您希望如何管理 DataAcessor 的生命周期.

public class SampleDao
{
public void AddSampleItem(object[] params)
{
DataAcessor dataAcessor =new DataAcessor();
// ...
}

public void UpdateSampleItem(object[] params)
{
DataAcessor dataAcessor =new DataAcessor();
// ...
}
}

关于class - 在 Dao 类中使用静态方法还是非静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2523804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com