论坛首页 Java企业应用论坛

如何让系统支持多种数据库

浏览 22719 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-02-13  
hibernate + JPA + 开发起来挺爽的
0 请登录后投票
   发表时间:2012-02-13  
不想用hibernate
就用OFbiz吧
都能跨数据库
0 请登录后投票
   发表时间:2012-02-13   最后修改:2012-02-13

public class DAOFactory{...}
public class OracleDAOFactory extends DBFactory{...}
public class MySQLDAOFactory extends DBFactory{...}

DAOFactory df = new OracleDAOFactory();
...
DAOFactory df = new MySQLDAOFactory();
...
 

是不是类似这样来?

0 请登录后投票
   发表时间:2012-02-13  
多个DAO实现感觉就是个坑啊,比起换数据库这样的需求,业务逻辑的更改恐怕更频繁吧。你每次都要改多个DAO的SQL,估计要疯了。
0 请登录后投票
   发表时间:2012-02-13  
kjj 写道
只能在dao层抽象两种设计了 比如 MysqlUserDao ,OracleUserDao,同样的功能实现两套就行了,你懂得,

这就是解决方案,我公司就是这么做的,用配置文件更改一下是使用mysql还是oracle便可。
0 请登录后投票
   发表时间:2012-02-13  
准备X套SQL?
0 请登录后投票
   发表时间:2012-02-13  
实现多个数据库的DAO,做一个拦截器,根据数据库类型,调用相应的DAO层。
0 请登录后投票
   发表时间:2012-02-13  
evanzzy 写道
做多数据库支持无非以下几种方案:
1、Hibernate或Toplink等orm映射工具;
2、使用标准Sql语法;
3、使用Sql语法转换器;
4、开发两套Sql,根据所连接数据库在Dao层做自动转换;

推荐最好的方案:不做多数据库支持


+1
0 请登录后投票
   发表时间:2012-02-13  
1. 用Hibernate改造,不过还是会有不少个性化sql。
2. 用ibatis改造,重新实现一套sql配置文件。
3. 自己改造DAO,实现另一套数据库库访问层。

0 请登录后投票
   发表时间:2012-02-13  
如果不想用hibernate,那就用多个dao实现,使用工厂类管理dao实现,不同数据库用不同的工厂类,这样只需要切换一个工厂类就可以了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics