1
回答
用jfinal的ActiveRecord实现一套应用代码支持多数据库,应该注意什么?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

请问用jfinal的 ActiveRecord实现一套应用代码支持多数据库,应该注意什么?

@jfinal

想自己的应用支持mysql和sql server,但不想用hibernate,使用jfinal的ActiveRecord,要同时支持多库,实现中要注意什么?


举报
gtd
发帖于5年前 1回/689阅
共有1个答案 最后回答: 5年前

jfinal默认只支持一个主数据源,如果想同时使用多个数据源,可、可以在数据访问时显式的指定,可以在配置时指定多个数据源插件实例,如下:

public void configPlugin(Plugins me) {
  // C3p0Plugin可以有多个对象存在
  C3p0Plugin c3p0Plugin = new C3p0Plugin(...);
  C3p0Plugin c3p0Plugin2 = new C3p0Plugin(...);
  me.add(c3p0Plugin);
  me.add(c3p0Plugin2);
  ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);

}
使用时可以这样调用:

// 默认使用是的主数据源
Vote vote = Vote.dao.findById(123);

// 指定了数据源,默认使用的是辅数据源,注意下面方法的第一个参数都指定了数据源
List<Record> votes = Db.find(c3p0Plugin2.getDataSource(), "select * from vote");

--- 共有 2 条评论 ---
缪斯的情人回复 @gtd : 和hibernate一样,配置下不同数据库的方言就可以。arp.setDialect(new AnsiSqlDialect()); 5年前 回复
gtd谢谢解答, 不过不是这个意思,应用只有一个数据源,我的意思是:写一套代码,部署的时候可以既用于mysql,又用于sql server (像hibernate那样),jfinal ar怎样做比较好? 5年前 回复
顶部