在Dao类中使用静态方法还是不使用静态方法? [英] Using Static methods or none static methods in Dao Class?

查看:203
本文介绍了在Dao类中使用静态方法还是不使用静态方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我生成Dao类为一些DB操作

Hi I generate Dao classes for some DB operations

以这种方式使Dao类的方法静态或无静态更好?

in this manner making methods of Dao class as static or none static is better?

使用下面的示例dao类,多个客户端在同一时间使用AddSampleItem方法,这可能会导致什么?

Using sample dao class below ,İf more than one client got to use the AddSampleItem method in same time?how this may result?

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

It would result in a big mess. If you are adding 2 items simultaneously from different threads, you would certainly end up with very strange results, or even errors if one thread closes the DataAcessor before the other completes.

我会使用本地 DataAcessor 或创建一个新的,并在所有的方法中使用,以管理 DataAcessor 的生命周期。

I would use a local DataAcessor or create a new and use that in all the methods depending on how you want to manage the lifetime of DataAcessor.

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

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

这篇关于在Dao类中使用静态方法还是不使用静态方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆