新人求教!DBHelp类
为什么DBHelp类中的方法永静态的? 静态的不是不安去么?
如 public static int ExecuteNonQuery(String sql,SqlParameter[] list){..........}
RT 假设 200同时访问数据 会不会出现数据不一致?
-----------------------------------------------------------------
为什么不 New 一个DBHelp呢? 调用他的非静态方法来完成呢,哪不是更安全么?
public int ExecuteNonQuery(String sql,SqlParameter[] list){..........}
如 DBhelp o = new DBHelp(); o.ExecuteNonQuery(String sql,SqlParameter[] list);
-------------------------------------------------------------------
有人说用lock 我发现是安全了 可是访问速度不敢恭维
****************************************************************************************************
另外 微软的Dbhelp类 public abstract class SqlHelper 抽象类?
方法 public static int ExecuteNonQuery(String sql,SqlParameter[] list){..........}
难道抽象类中写个静态方法就安全了?
大神们指点下 别骂我 我是新淫..
[解决办法]
并发访问数据库的问题,需要你自己的程序区控制,DBHelper 无法帮助你实现。
DBHelper 类中的静态方法只是保证调用的线程安全,确保程序资源的正确释放。
[解决办法]
1、用静态方法可以不用new直接可以调用,如果不是静态的话,调用类的时候必须得new,这时系统将会为该对象分配一块内存空间。直接用static能节省很大的资源。
2、只是用数据库读取数据,不会出现不一致的情况,除非第一次读的时候,在与第二次读之间,有用户更改或者删除了数据,数据库会自动加上锁,这时候才会出现脏读的情况。
3、安全性的问题与是不是static类无关。
4、用lock,是为了在对某条数据库记录进行操作时,别人又来操作该条记录。
5、抽象类是为了你继承该类的时候可以重写基类的方法。static方法参见1
[解决办法]
学习学习..........
[解决办法]
DBHelper 类中的静态方法只是保证调用的线程安全,确保程序资源的正确释放。
[解决办法]
用静态 运行比new出来的快一些
而且你可以少写代码 不用想对象的变量名
抽象类是让别人不要去new它
肤浅地解说一下
[解决办法]