java项目配置多个数据源,sping版本要4+以上

来源:互联网 发布:java并行框架 编辑:程序博客网 时间:2024/05/22 12:13

原帖地址:http://blog.csdn.net/sinat_29774479/article/details/75642932

本人应用场景:原来项目数据库用的mysql,后台框架用的是spring3.x+hibernate3.x(版本比较老) ,现在该项目的配套产品数据库用的是sqlserver.本以为hibernate是万能,起码能兼容主流数据库吧。实践的时候,配好数据库链接,切换驱动包,项目启动到时没有问题,但是执行HQL查询的时候报错了,还有sqlserver 的表字段时间类型用的datetime ,代码实体用java.util.date ,并注解@Temporal ,死活还是报错。奔溃,泪

后面一想,不对啊,怎么能改数据库呢,万一在扩展一个异库套产品呢。于是疯狂的搜一个项目配置两个数据源的资料,最简单粗暴的就是关于数据源的,sessionfactory,transationManger的都多配置一份。经过一番配置之后,以为大功告成,项目一启动,各种报错,大概是说默认的sessionfactory是单例的,不同同时存在两个sessionfactory,又经过一番调节之后,发现可以配多个数据源,但是不能配多个sessionfactory.心想,妈的,人家怎么行呢?同样的是spring,又疯狂搜资料,还是没有答案。

最后将sping和hibernate提升至4+,偶然发现,项目启动没有报错,经测试增删查改也没有错!!!

 

注意使用hibernate这个用resource指定id注入

@Resource(name="hibernateTemplate")
protected HibernateTemplate hibernateTemplate;

@Resource(name="sqlServer_hibernateTemplate")
protected HibernateTemplate hibernateTemplate;