Jfinal如何正确使用多数据源?

  1. JFinal 为了省代码达到极速开发,所以只支持一个主数据源,同时支持多个辅数据源。所谓主数据源是指当你在使用JFinal对数据库操作时,如果没有明确指定数据源,那么默认为使用了主数据源。
  2. 主数据源可以在两个地方设置,其一是在 new ActiveRecordPlugin 时指定,其二是使用DbKit.setDataSource(DataSource ds)来指定。ActiverecordPlugin 中所依赖的主数据源,以及数据库配置都是共享的,所以 new 出多个 ActiveRecordPlugin来是没有意义的。主数据源可以通过DbKit.setDataSource(...)在程序中动态指定。
  3. C3P0Plugin 可以创建多个对象,这是有意义的,所以楼主上面给的代码是有意义的。
  4. Oracle 在保存数据时 primaryKey 是指主键名称,例如可以是"ID",而Record这个参数中,要给定相应的主键值,如new Record().set("ID", 123);

        以下给出多数据源的使用例子代码,首先是初始化代码:

        01 public void configPlugin(Plugins me) {
        02   // C3p0Plugin可以有多个对象存在
        03   C3p0Plugin c3p0Plugin = new C3p0Plugin(...);
        04   C3p0Plugin c3p0Plugin2 = new C3p0Plugin(...);
        05   me.add(c3p0Plugin);
        06   me.add(c3p0Plugin2);
        07  
        08   // ActiveRecordPlugin 只能有一个对象存在
        09   ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
        10   me.add(arp);
        11   arp.addMapping("vote", Vote.class);
        12 }

        以下是多数据源使用代码:

        1 // 没有指定数据源的时候,默认使用是的主数据源
        2 Vote vote = Vote.dao.findById(123);
        3  
        4 // 指定了数据源,默认使用的是辅数据源,注意下面方法的第一个参数都指定了数据源
        5 List<Record> votes = Db.find(c3p0Plugin2.getDataSource(), "select * from vote");
        6 Db.save(C3p0Plugin2.getDataSource(), "vote""ID"newRecord().set("ID"888).set(...).set(...));
        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

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

        抵扣说明:

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

        余额充值