play框架 多个MySQL_play framework 如何支持多数据源

本文介绍了在Play1.2.4中遇到的不支持连接两台数据库的问题及解决方案。作者选择复制并修改现有模块来实现多数据源,详细步骤包括复制db模块、修改配置、测试和打包。尽管在DEV模式下存在一些遗留问题,如所有模型在两台服务器上都会创建表,但整体实现了目标。
摘要由CSDN通过智能技术生成

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

现有的问题: 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 文件夹复制一份

6fb2adf0d16bffb340505ed21a526fa7.png

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

853e12ce1e34e92ac8392301e1caeb44.png

3.3  修改了获取的配置项

71e024371e53e829cb64a717a58364a4.png

3.4 :  修改了enhance部分的功能

25bb50b8d234e14768206d906cf2be01.png

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

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

3.7   往play中添加插件

3670b8dda6ecc4e6fdd8028c7a6754fb.png

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

1bef79c3189bfd7ba7159f2fc1b4d445.png

a22cab0361323051e50bf50e6a76756c.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值