工厂(工厂方法)模式实现多数据库的连接

以前老听别人说多数据库的连接应当用工厂模式处理,当时感觉神秘,没有深究,在学习了工厂模式后,老感觉不对,工厂模式(我开始认为是抽象工厂模式)不是创建产品系列的嘛,也就是创建对象的嘛,多数据库哪有需要创建产品系列,也就是对象的系列,后来想想了感觉用工厂方法还是比较合适的,今天从网上搜索,果然在这里大家所说的工厂模式指的是
工厂方法模式。在这里大概讲一下。
1. 首先定义抽象工厂,创建产品,在这里是数据库连接的实例。
在此可以例如
public   abstract   class  DatabaseFactory
    {
        
public  AbstractDatabase Create;        
    }
}

2.然后定义具体工厂,实现创建方法,具体工厂创建具体产品。
目前只写 oracle的
public   class  OracleFactory:DatabaseFactory
    {
        
public   override  AbstractDatabase Create()
        {
           
// to do
        }
    }

3.首先定义抽象产品,描述都需要什么方法或属性,一般就是创建连接,打开连接,执行sql,查询结果,返回dataset、或dataTable,事务的操作,关闭连接等,可以根据你的需要。目前实例如下
ContractedBlock.gif ExpandedBlockStart.gif Code
   {
        
public abstract string DbType
        { 
            
get
        }

        
public  abstract DbDataReader ExecuteDbDataReader(string sql);
      
        
public abstract DbConnection Connection
        { 
get; }
       
        
public abstract int ExecuteNonQuery(stirng sql, string[] strParams, object[] strValues, bool isProcedure);
        
        
public abstract DataSet GetDataSet(string sql,string[] strParams, object[] strValues,bool isProcedure);
       
        
public abstract DataTable GetDataTable(string sql, bool isProcedure);
    }

4.然后定义具体产品,可以有sqlserver、oracle什么的,继承抽象工厂,实现抽象工厂的方法或属性。
然后定义确定使用哪种具体产品的方法,目前写了不再例举。
5.定义决定使用哪个工厂的控制类,控制方式可以使用传字符串的方式,或者读配置文件,或者其他方式,推荐配置文件,容易修改,灵活。可以采用反射的形式,也可以不用。推荐反射,灵活获得以插件式的灵活性。在此不写代码 了。
思路如此,一切根据实际情况灵活运用,上面写的没有经过实验,都是构思过程,可能有谬误的地方,欢迎大家拍砖,呵呵。

后记:
现在感觉不用工厂方法也可以 ,反而有些麻烦,其实用简单工厂就行,就是由抽象产品和具体产品,然后有一个生产产品的方法(可以使用工厂里的create)就可以。在方法里决定具体使用哪一个产品。产品即数据库的操作定义。



转载于:https://www.cnblogs.com/yours369000/archive/2009/08/24/1553151.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java工厂模式可以在程序中根据不同的数据库类型实现不同的数据库连接。在实现过程中,可以使用工厂类来创建数据库连接对象,并根据需求返回对应的数据库连接工厂模式的核心是定义一个工厂类,该类负责创建和返回具体的数据库连接对象。可以使用一个抽象的数据库连接接口来定义连接对象的共同操作,然后创建不同的子类实现该接口,每个子类分别对应一个具体的数据库连接类。 首先,定义一个抽象的数据库连接接口,该接口包含数据库连接方法,如连接数据库、执行SQL语句等。然后,创建不同的子类实现该接口,每个子类分别对应一个具体的数据库连接类,如MySQL连接类和Oracle连接类。 接着,创建一个工厂类,该工厂类根据不同的数据库类型返回对应的数据库连接对象。工厂类可以提供一个静态方法,根据传入的数据库类型参数创建对应的数据库连接对象。当需要连接数据库时,只需调用工厂类的静态方法,传入需要连接数据库类型,工厂类便会返回对应的数据库连接对象。 使用者可以通过调用工厂类的静态方法获取数据库连接对象,而无需直接调用具体的数据库连接类。这样,可以实现代码的解耦和灵活性,只需修改工厂类中的判断逻辑,而无需修改其他类的代码即可实现不同数据库连接。 总之,通过使用Java工厂模式,可以实现根据不同数据库类型的需要创建对应的数据库连接对象,提高程序的灵活性和扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值