创建多数据源,一直报要查的表不存在,但是表一直在第二个数据库

@Override

public void configPlugin(Plugins me) {

// 配置C3p0数据库连接池插件

DruidPlugin druidPlugin = createDruidPlugin();//new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());

//加载数据库连接池插件

me.add(druidPlugin);

// 配置ActiveRecord插件

ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);

// 所有映射在 MappingKit 中自动化搞定

arp.setShowSql(false).setDevMode(false);


_MappingKit.mapping(arp);

me.add(arp);

DruidPlugin druidPlugin2 = createDruidPlugin2();

me.add(druidPlugin2);

ActiveRecordPlugin arp2 = new ActiveRecordPlugin("ttarp2",druidPlugin2);

arp2.setShowSql(false).setDevMode(false);

_MappingKit2.mapping(arp2);

me.add(arp2);

// ehcahce插件配置

me.add(new EhCachePlugin());


}



运行不报错,就是找不到第二个数据源的表,一直在第一个数据源寻找

评论区

JFinal

2018-03-28 18:51

jdbcurl 是否用了同一个?

settven

2018-03-29 11:13

@JFinal 不是,第二个数据源的其他表都可以用,就这一张表用不了

settven

2018-03-29 11:50

@JFinal 为什么查询,删除必须用源码封装的方法,Db这个类不能修改吗?

settven

2018-03-29 12:11

@JFinal 为什么配置了数据源。他是自动去切换数据源吗?还是用别名去调用?
其他表没用别名可以用,但是有一个表就是一直去第一个数据源,不去找第二个数据源

JFinal

2018-03-29 15:19

@settven Db 的实现可以修改,只需要继承一下 DbPro 这个类,在继承类中改成自己的实现,然后利用 ActiveRecordPlugin.setDbProFactory 方法配置一下:
arp.setDbProFactory(new MyDbProFactory());

注意这里的 MyDbProFactory 需要自己实现,里面就是一个 return new MyDbPro()) 而已

JFinal

2018-03-29 15:20

@settven 对于你在 MappingKit 中映射的 Model,数据源是自动寻找的,无需干预,对于 Db + Record 模式的数据库操作需要用 Db.use(...) 指定数据源,如果不指定默认使用主数据源

热门反馈

扫码入社