多个数据库,假设每个库中都有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) 来指定数据源