项目需求,大概要连到4个服务器下的N个数据库。。
我有三种思路,但觉得都不太可取,不知道大家什么好方法能指点下吗?
第一种:
DbHelperSQL类中所有的方法为静态方法,每当操作方法时传递要处理的数据库连接标识。
如:
DbHelperSQL.GetSingle(strsql,“网通");//这个时候,创建数据库连接就直接使用DbHelperSQL类中已经定义好的“网通”标识数据库链接。
缺点就是所有的DbHelperSQL中的方法都要改动下。
第二种:
使用“网通”数据库连接的时候直接把DbHelperSQL中的静态数据库连接字段给改成,网通的,用什么的,调用之前就设置下用什么的。。
如:
DbHelperSQL.connectionString=getCon("网通");//getCon就是取得网通链接字符串,connectionString是静态变量。
DbHelperSQL.GetSingle(strsql);
优点是代码量小了,但是一个静态成员connectionString频繁的改来改去,如果1秒中几十用户访问的话,这个静态字段变来变去,静态方法也很可能受到影响,链接使用犯错误,难免会有人出错吧。
第三种:
把DbHelperSQL所有成员改成非静态的,在调用的时候,先new一个DbHelperSQL实例,这个时候传进去数据库连接参数,然后再执行这个数据库连接。这样可以避免第二种的问题。
如:DbHelperSQL dbCnc=new DbHelperSQL("网通");
dbCnc.GetSingle(strsql);
优点,前两种的确定都避免了,但新问题是,每次连接都NEW一个实例,这样占用资源是不是很多??
希望大家能帮我分析下我这三种方法的我分析优缺点是否正确,并提出意见,能给个更好的写法是最好不过了···

解决方案 »

  1.   

    优点,前两种的确定都避免了,但新问题是,每次连接都NEW一个实例,这样占用资源是不是很多??不多,再说现在们内存也很便宜的 !
      

  2.   

    lz和我的有点相似,我的也是多服务器,多数据库,但是我要的是怎么架构这样的数据层,
    就是说数据层怎么设计,目前我还没有想到好的办法解决问题,问题有:需要一个数据库链接对象的工厂吗?需要数据库事务工厂吗?业务层怎么来提交或者回滚事务?
    这3个是最要的问题?请大家给点意见或者建议,小弟才1N经验啊?