+ -
当前位置:首页 → 问答吧 → 医院网站平台需求,望大家指点

医院网站平台需求,望大家指点

时间:2011-08-11

来源:互联网

现在农村医院项目有一种这样的需求:

如果在大型项目中需要使用各种不同的数据库在一个项目中,
那么我们需要配置多个数据源,同时当我们要读取数据时也需要支持数据库的SQL语句,所以,
需要把Sql语句转换成不同的T-SQL,因为不同数据库的SQL是不同的。

Mybatis是把sql语句写到xml中封装后使用,那么是不是可以在xml转换成各种平台的sql语句再封装,请大家帮忙思考这个问题,希望有代码贴出来。

或者还有什么别的思路可以动态将sql转换的,希望能说出你的思路。这样在访问不同的数据库就不需要再修改sql语句了。

作者: yxfei666   发布时间: 2011-08-11

根据每种数据库特征,拼SQL吧。

作者: softroad   发布时间: 2011-08-11

采用hibernate吧,用hibernate的hql 这样它会根据你的数据库来生成对应的sql语句的噢

作者: yuejingjiahong   发布时间: 2011-08-11

项目规定不使用hibernate,用jdbc或者mybatis,这也是个麻烦

作者: yxfei666   发布时间: 2011-08-11

关注下。。。

作者: softroad   发布时间: 2011-08-11

SQL92标准 大概所有数据库都支持吧

作者: yashucn   发布时间: 2011-08-11

跨数据库没那么容易的。。

作者: LeeHomWong   发布时间: 2011-08-11

每种数据库实现不同dao吧,我想只能这样了

作者: ajun_studio   发布时间: 2011-08-11

为什么要改变SQL语句?
同时建多个数据源是必须的,我做的项目也是跨库的。我是直接通过数据源的JNDI获取数据库connection.
Connection con = conPool.getConn("gzds");
Connection con1 = conPool.getConn("gzds1");

PS:gzds和gzds1是2个数据源的JNDI。

至于SQL语句
Statement stmt = con.createStatement();
stmt.execute(sql);

作者: wangjiangbo2   发布时间: 2011-08-11

多种实现dao+策略模式。

作者: mumushijie   发布时间: 2011-08-11

sql语句需要处理才能适用不同的数据库呀!!

引用 9 楼 mumushijie 的回复:
多种实现dao+策略模式。


策略模式,能谈谈吗?

作者: yxfei666   发布时间: 2011-08-11

既然有跨数据库,为不什么不用Hibernate?最优的选择是改用hibernate了

是考虑性能?那就付出代价吧,为每个数据库都去写一个DAO

尽量使用SQL92标准,只为某些特殊业务才去实现不同的DAO吧

作者: tan3739   发布时间: 2011-08-11

热门下载

更多