文档章节

play framework 如何支持多数据源

专业写BUG的程序员
 专业写BUG的程序员
发布于 09/25 10:37
字数 612
阅读 59
收藏 0

有段时间没有写博客了,但今天又写一篇了,主要是因为这事有一丝自己的思考和动手实践,所以就记录下来了。

现有的问题: play 1.2.4  两台数据库服务器,但是play1.2.4 并不支持同时连接两台数据库服务器,如何解决这个问题?

问题的解决步骤:

1: 研究play是如何连接上一台数据库服务器的。

        play 是通过db这个module来完成数据库相关的操作的。

     主要流程

配置文件 ----> 构建DataSource ---->Ejb3Configuration  -----> EntityManagerFactory   ----->  EntityManager  --------> JPA

2:  解决问题的办法

         2.1 修改现有module来实现支持多数据源,网上搜到关于此类的解决方法比较多,然后通过 JPA.em("datasourse") 来切换数据源。 当然这存在相当大的问题,一是不支持JPA的操作,二是即使实现了,现有代码需要修改的地方太多太多,三是根本没有能力来修改这个module。

         2.2  将现有module的功能复制一份用来实现连接第二台服务器的功能。当然我选择了后者

3: 实现的步骤 

        3.1: db 文件夹复制一份 

 

       3.2: 修改了db1文件中相关文件的包名。

       3.3  修改了获取的配置项

        

        3.4 :  修改了enhance部分的功能

            3.5  反复测试几次(10来次),直到与db相关的所有地方修改为db1,至此完成了db模块功能的复制。

            3.6  重新打包。 有build.xml 当然是使用ant来进行构建。但具体使用哪个版本的ant也小有学问,毕竟不是任意版本的ant都行的。也不会有人会告诉你jar包中的MANIFEST.MF 文件中包含了构建工具相关的信息。

            3.7   往play中添加插件 

    

 

         3.8  替换掉原来的jar,进行测试。

 

            遗留的问题,DEV模式下所有的model在两台数据库服务器上都建了对应的数据表,虽然这对使用几乎没有影响。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
专业写BUG的程序员
粉丝 7
博文 103
码字总数 19999
作品 0
海淀
私信 提问
Play!2.1 通过JPA连接多个数据库

Play framework连接多数据库很简单。 但是这个很简单耗费了我整整两天的时间来找到这个答案。 还好苍天,我还是找到了。 ============================================================= Pl...

davelet
2013/12/09
0
0
play framework 假死

紧急求助,play 卡死,CPU 600%,没响应。play 1.4.4 /多数据源,能看到 job 空跑,不响应 http,听云监控,cpu消耗在 sun.nio.ch.EPollArrayWrapper.epollWait。 从启动开始,CPU消耗一直增...

快乐闪光灯
2017/03/08
29
14
在 Eclipse 中开发基于 Play Framework 框架的 Web 应用

在开始本文之前,请确保已经对 Play Framework 已经有所了解,请看 Play Framework 的入门教程。 Play 框架支持 Eclipse、NetBeans 和 IntelliJ IDEA 三个主流的 Java 开发环境,本文主要介绍...

小编辑
2010/07/06
7.9K
9
开源中国7-2期推荐 Java Web应用框架Play!

Play!是一个full-stack(全栈的)Java Web应用框架,包括一个简单的无状态MVC模型,具有Hibernate的对象持续,一个基于Groovy的模板引擎,以及建立一个现代Web应用所需 的所有东西。 Play!...

老枪
2010/07/12
2.6K
2
AuxiliaryDBPlugin

AuxiliaryDBPlugin 是一个 Play Framework 的插件,用于实现通过 JDBC 链接到各个数据源。 配置方法:(application.conf) module.AuxiliaryDBPlugin=${play.path}/modules/AuxiliaryDBPlugi......

匿名
2011/08/02
326
0

没有更多内容

加载失败,请刷新页面

加载更多

特斯拉车主成功破解了自己Model 3汽车

据汽车博客Electrek消息,一位特斯拉车主成功破解了自己Model 3汽车,还在此基础上运行了Ubuntu。 这位叫trsohmers的网友表示,“功劳大多要归到Ingineerix的头上,他花了数月才找到初始的那...

linuxCool
19分钟前
0
0
Gitbook : random errors when using gitbook plugin on running "gitbook serve"

在执行gitbook serve时,会有不定的失败错误 参考问题 :#1309 解决方案: 更新gitbook版本,这个问题似乎是3版本的问题 , 官方也不打算在这个版本解决了。 更新 到最新版本后, 不再出现问...

ol_O_O_lo
33分钟前
1
0
提灯照暗,向内自省——《中国文化的深层结构》读书笔记3800字

提灯照暗,向内自省——《中国文化的深层结构》读书笔记3800字: 作者:王健茜;断断续续一个多月才读完了《中国文化的深层结构》,这并不是一本难懂的书,之所以读得慢,源于对书中观点的思...

原创小博客
36分钟前
1
0
高德地图-行政区域接口

1、获取全国各省信息 https://restapi.amap.com/v3/config/district?extensions=all&key=应用Key&s=rsv3&output=json 2、获取下级行政区域信息 https://restapi.amap.com/v3/config/distric......

voole
48分钟前
4
0
集群介绍 ..

12月19日任务 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群 一.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,...

hhpuppy
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部