锁定老帖子 主题:如何让系统支持多种数据库
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-02-13
hibernate + JPA + 开发起来挺爽的
|
|
返回顶楼 | |
发表时间:2012-02-13
不想用hibernate
就用OFbiz吧 都能跨数据库 |
|
返回顶楼 | |
发表时间: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(); ... 是不是类似这样来? |
|
返回顶楼 | |
发表时间:2012-02-13
多个DAO实现感觉就是个坑啊,比起换数据库这样的需求,业务逻辑的更改恐怕更频繁吧。你每次都要改多个DAO的SQL,估计要疯了。
|
|
返回顶楼 | |
发表时间:2012-02-13
kjj 写道 只能在dao层抽象两种设计了 比如 MysqlUserDao ,OracleUserDao,同样的功能实现两套就行了,你懂得,
这就是解决方案,我公司就是这么做的,用配置文件更改一下是使用mysql还是oracle便可。 |
|
返回顶楼 | |
发表时间:2012-02-13
准备X套SQL?
|
|
返回顶楼 | |
发表时间:2012-02-13
实现多个数据库的DAO,做一个拦截器,根据数据库类型,调用相应的DAO层。
|
|
返回顶楼 | |
发表时间:2012-02-13
evanzzy 写道 做多数据库支持无非以下几种方案:
1、Hibernate或Toplink等orm映射工具; 2、使用标准Sql语法; 3、使用Sql语法转换器; 4、开发两套Sql,根据所连接数据库在Dao层做自动转换; 推荐最好的方案:不做多数据库支持 +1 |
|
返回顶楼 | |
发表时间:2012-02-13
1. 用Hibernate改造,不过还是会有不少个性化sql。
2. 用ibatis改造,重新实现一套sql配置文件。 3. 自己改造DAO,实现另一套数据库库访问层。 |
|
返回顶楼 | |
发表时间:2012-02-13
如果不想用hibernate,那就用多个dao实现,使用工厂类管理dao实现,不同数据库用不同的工厂类,这样只需要切换一个工厂类就可以了。
|
|
返回顶楼 | |