开发者社区 问答 正文

多数据库使用,model问题?报错

@JFinal

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

展开
收起
爱吃鱼的程序员 2020-06-14 18:10:42 599 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    http://www.jfinal.com/man

    写这个代码的时候报错

    <spanstyle="line-height:1.5;font-size:10pt;">ActiveRecordPluginarpMysql= <spanstyle="line-height:1.5;font-size:10pt;">new<spanstyle="line-height:1.5;font-size:10pt;"> ActiveRecordPlugin(<spanstyle="line-height:1.5;font-size:10pt;">"mysql"<spanstyle="line-height:1.5;font-size:10pt;">,dsMysql);

    <spanstyle="line-height:1.5;font-size:10pt;">最后按提示,修改后,就没有后面的configname了

    <spanstyle="line-height:1.5;font-size:10pt;"><spanstyle="font-size:10pt;line-height:1.5;">ActiveRecordPluginarpMysql= <spanstyle="font-size:10pt;line-height:1.5;">new<spanstyle="font-size:10pt;line-height:1.5;"> ActiveRecordPlugin(<spanstyle="font-size:10pt;line-height:1.5;"> dsMysql);

    <spanstyle="line-height:1.5;font-size:10pt;"><aclass='referer'target='_blank'>@JFinal

    <spanstyle="line-height:1.5;font-size:10pt;">

    <spanstyle="line-height:1.5;font-size:10pt;">


    <divclass='ref'>

    引用来自“子寒”的评论

    写这个代码的时候报错

    <spanstyle="line-height:1.5;font-size:10pt;">ActiveRecordPluginarpMysql= <spanstyle="line-height:1.5;font-size:10pt;">new<spanstyle="line-height:1.5;font-size:10pt;"> ActiveRecordPlugin(<spanstyle="line-height:1.5;font-size:10pt;">"mysql"<spanstyle="line-height:1.5;font-size:10pt;">,dsMysql);

    <spanstyle="line-height:1.5;font-size:10pt;">最后按提示,修改后,就没有后面的configname了

    <spanstyle="line-height:1.5;font-size:10pt;"><spanstyle="font-size:10pt;line-height:1.5;">ActiveRecordPluginarpMysql= <spanstyle="font-size:10pt;line-height:1.5;">new<spanstyle="font-size:10pt;line-height:1.5;"> ActiveRecordPlugin(<spanstyle="font-size:10pt;line-height:1.5;"> dsMysql);

    <spanstyle="line-height:1.5;font-size:10pt;"><aclass='referer'target='_blank'>@JFinal

    <spanstyle="line-height:1.5;font-size:10pt;">

    <spanstyle="line-height:1.5;font-size:10pt;">


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

    有个新问题,<aclass='referer'target='_blank'>@JFinal

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

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

    <divclass='ref'>

    引用来自“子寒”的评论

    有个新问题,<aclass='referer'target='_blank'>@JFinal

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

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

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

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

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

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

    mvn/gradle等加入依赖

    <spanstyle="color:#6a8759;">com.jfinal:jfinal-ext:3.1.3-SNAPSHOT'

    https://github.com/b1412/jfinal-ext/blob/master/doc/doc.org文档里面有说明多数据源推荐将不同数据源的Model放在不同的package中然后调用addScanPackages设置要扫描的packageatbp=newAutoTableBindPlugin(druidPlugin).addScanPackages("com.xx.yy.service1.model");atbp2=newAutoTableBindPlugin("another",druidPlugin2).addScanPackages("com.xx.yy.service2.model2","com.xx.yy.service2.model3")如果在一个package里面有属于不同数据源的model(如果不是因为无法避免的历史遗留原因不要采用这样的方式),那么给Model加上TableBind注解并给configName属性赋值我用了这个方法,然后用的addScanPackages,用的循环配置每个数据库,但是一直报索引超出范围,现在改成了一个一个表的写法,回头我再试下,有成果我发出来另外关于表相同数据不同这样的方案我本身没有做过,所以还没有比较深入的思考.在两个包建立不同的类可否?3.1.2在win下会出bug换3.1.3-snapshot

    2020-06-14 18:10:58
    赞同 展开评论
问答分类:
问答地址: