多数据库使用,model问题

子寒 发布于 2015/01/26 11:23
阅读 479
收藏 0

@JFinal

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

加载中
1
子寒
子寒
http://www.jfinal.com/man
0
子寒
子寒

写这个代码的时候报错

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

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

ActiveRecordPlugin arpMysql = new ActiveRecordPlugin( dsMysql);

@JFinal




0
JFinal
JFinal

引用来自“子寒”的评论

写这个代码的时候报错

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

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

ActiveRecordPlugin arpMysql = new ActiveRecordPlugin( dsMysql);

@JFinal




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

有个新问题,@JFinal

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

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

0
JFinal
JFinal

引用来自“子寒”的评论

有个新问题,@JFinal

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

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

AutoTableBindPlugin 是 jfinal extensions 项目中的扩展,看一下最新版本的 jfinal extensions 有无支持多数据源,或者问问作者 @绝望的八皮
子寒
子寒
回复 @JFinal : 嗯,刚对配置改进了下,对比下,只是增加了几十行代码
JFinal
JFinal
回复 @子寒 : 其实一张表一行代码,工作量不大,相比 hibernate 时代的配置量,已经可以忽略不计了。使用 AutoTableBindPlugin 需要用注解,其实也相当于配置,一样的工作量
子寒
子寒
嗯,我去看下最新版,另外我把问题描述下: ABC3个数据库,A有20个表,BC40个表。 BC两个数据库的表结构一样,但是数据不一样 我在配置插件的时候,怎么可以不用每个表去写代码隐射? @绝望的八皮
0
绝望的八皮
绝望的八皮

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'

0
绝望的八皮
绝望的八皮
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属性赋值
子寒
子寒
我用了这个方法,然后用的addScanPackages,用的循环配置每个数据库,但是一直报索引超出范围,现在改成了一个一个表的写法,回头我再试下,有成果我发出来
0
绝望的八皮
绝望的八皮
另外关于表相同数据不同这样的方案我本身没有做过,所以还没有比较深入的思考.在两个包建立不同的类可否?
0
绝望的八皮
绝望的八皮
3.1.2在win下会出bug换3.1.3-snapshot
返回顶部
顶部