JFinal多数据源处理

多个数据库,假设每个库中都有user表

1、那就需要new多个c3p0plugin?

C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl1"), getProperty("user1"), getProperty("password1").trim());
C3p0Plugin c3p0Plugin2 = new C3p0Plugin(getProperty("jdbcUrl12"), getProperty("user2"), getProperty("password2").trim());
me.add(c3p0Plugin);
me.add(c3p0Plugin2);

2、ActiveRecordPlugin 需要new一个还是多个?

1)如果new一个的话,因为我每个数据库中都有一个user表,

arp.addMapping("user", User.class); // 映射user表到 User模型

那我User user = User.dao.findById(25, "name, age"); ,这样查询的是哪个库

2)如果new多个的话,是不是这样写:

ActiveRecordPlugin arpMysqlDB1 = new ActiveRecordPlugin("mysql1", dsMysql); 
me.add(arpMysqlDB1); 
arpMysqlDB1.addMapping("user", User.class); 

ActiveRecordPlugin arpMysqlDB2 = new ActiveRecordPlugin("mysql2", dsMysql); 
me.add(arpMysqlDB2); 
arpMysqlDB2.addMapping("user", User.class); 

查询的时候:

List<Record> users1 = Db.use("mysql1").find("select * from user"); 

List<Record> users2 = Db.use("mysql2").find("select * from user");




JFinal

1:有多少个数据源就要 new 多少个 C3p0Plugin 或者 DruidPlugin

2:每个 ActiveRecordPlugin 对应一个数据源,所以多个数据源之下,也要 new 出多个 ActiveRecordPlugin 对象

3:每个 Model 唯一对应一个 ActiveRecordPlugin 对象,且只能被某一个 ActiveRecordPlugin 对象使用 addMapping(...) 进行映射,所以同一个 Model 不能添加到不同的 ActiveRecrodPlugin

4:Model 唯一对应一个 ActiveRecordPlugin ,ActiveRecordPlugin 唯一对应一个 C3p0Plugin,推导出 Model 唯一对应一个数据源,所以 Model 与数据源的对应关系是自动化解决的,因为在构建 ActiveRecordPlugin 对象的时候就已经确立了对应关系

5:而 Db + Record 模式没有像 Model 一样建立与数据源的一一对应的关系,所以在多数据源之下需要使用 Db.use(configName) 来指定数据源


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值