嗨,我为一些数据库操作生成了 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/