多数据库使用,model问题

发布于 2021-11-29 14:11:19 字数 232 浏览 932 评论 14

@JFinal

我一个项目里用了2个数据库,其中A数据库有20个表,B数据库有10个表,我知道可以配置多数据源,然后查询,但是这样的情况下,model怎么办?启动的时候不是会进行隐射, 但是B数据库的10个表,在以A为主数据源的时候,不就报错了?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(14

屌丝范 2021-11-30 02:10:19

3.1.2在win下会出bug换3.1.3-snapshot

噩梦成真你也成魔 2021-11-30 02:10:18

另外关于表相同数据不同这样的方案我本身没有做过,所以还没有比较深入的思考.在两个包建立不同的类可否?

躲猫猫 2021-11-30 02:10:16

https://github.com/b1412/jfinal-ext/blob/master/doc/doc.org 文档里面有说明 多数据源 推荐将不同数据源的Model放在不同的package中然后调用 addScanPackages 设置要扫描的package atbp = new AutoTableBindPlugin(druidPlugin) .addScanPackages("com.xx.yy.service1.model"); atbp2 = new AutoTableBindPlugin("another",druidPlugin2) .addScanPackages("com.xx.yy.service2.model2","com.xx.yy.service2.model3") 如果在一个package里面有属于不同数据源的model(如果不是因为无法避 免的历史遗留原因不要采用这样的方式),那么给Model加上TableBind注 解并给configName属性赋值

伪装你 2021-11-30 02:10:16

我用了这个方法,然后用的addScanPackages,用的循环配置每个数据库,但是一直报索引超出范围,现在改成了一个一个表的写法,回头我再试下,有成果我发出来

旧城烟雨 2021-11-30 02:10:15

jfe3.1.2支持多数据源,不过在win下scanPackage方法有bug.

3.1.3修复不过没正式发布.目前发布了snapshot

https://oss.sonatype.org/content/repositories/snapshots/com/jfinal/jfinal-ext/

mvn/gradle等 加入依赖

com.jfinal:jfinal-ext:3.1.3-SNAPSHOT'

樱花落人离去 2021-11-30 02:10:13

嗯,我去看下最新版,另外我把问题描述下: ABC3个数据库,A有20个表,BC40个表。 BC两个数据库的表结构一样,但是数据不一样 我在配置插件的时候,怎么可以不用每个表去写代码隐射?
@绝望的八皮

囚你心 2021-11-30 02:10:11

回复
其实一张表一行代码,工作量不大,相比 hibernate 时代的配置量,已经可以忽略不计了。使用 AutoTableBindPlugin 需要用注解,其实也相当于配置,一样的工作量

成熟稳重的好男人 2021-11-30 02:10:09

回复
嗯,刚对配置改进了下,对比下,只是增加了几十行代码

奈何桥上唱咆哮 2021-11-30 02:10:06

引用来自“子寒”的评论

有个新问题,@JFinal

之前用的AutoTableBindPlugin可以不用对每个表都写addMapping

但是现在我用的多个数据库,就不能用AutoTableBindPlugin了,那有什么办法可以不用对每个表都写addMapping啊?  毕竟几个数据库,表都上百个了

成熟稳重的好男人 2021-11-30 02:10:04

有个新问题,@JFinal

之前用的AutoTableBindPlugin可以不用对每个表都写addMapping

但是现在我用的多个数据库,就不能用AutoTableBindPlugin了,那有什么办法可以不用对每个表都写addMapping啊?  毕竟几个数据库,表都上百个了

爱的那么颓废 2021-11-30 02:08:43

已经解决了,是版本问题,我用的1.4的,换成1.9的就好了。 看官网手册上没有这样写,当时没察觉是版本导致的 。。。

千笙结 2021-11-30 02:04:15

引用来自“子寒”的评论

写这个代码的时候报错

ActiveRecordPlugin arpMysql = new ActiveRecordPlugin("mysql", dsMysql);

最后按提示,修改后,就没有后面的configname了

ActiveRecordPlugin arpMysql = new ActiveRecordPlugin( dsMysql);

@JFinal

落墨 2021-11-30 02:03:40

写这个代码的时候报错

ActiveRecordPlugin arpMysql = new ActiveRecordPlugin("mysql", dsMysql);

最后按提示,修改后,就没有后面的configname了

ActiveRecordPlugin arpMysql = new ActiveRecordPlugin( dsMysql);

@JFinal

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文