JFinal 动态数据源

JFinal可以使用Db+Record模式配置动态数据源,如果有多个数据源,就需要配置多个,需要修改工程代码。其实也是可以通过传递参数达到动态连接数据库,需要访问数据库才连接,达到按需连接。

使用Jfinal3版本,数据库使用mysql,加入相关依赖jar.

这里写图片描述

SysConfig为Jfinal配置在web.xml的总过滤器类。

package com.wlkj.config;

import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.template.Engine;

public class SysConfig extends JFinalConfig{

    @Override
    public void configConstant(Constants me) {
        // TODO Auto-generated method stub

    }

    @Override
    public void configPlugin(Plugins me) {
        // TODO Auto-generated method stub
        //之前是在这里配置动态数据源。。。。
    }

    @Override
    public void configRoute(Routes me) {
        me.add("/user", UserController.class);

    }

    @Override
    public void configEngine(Engine me) {
        // TODO Auto-generated method stub

    }


    @Override
    public void configInterceptor(Interceptors me) {
        // TODO Auto-generated method stub

    }

    @Override
    public void configHandler(Handlers me) {
        // TODO Auto-generated method stub

    }

}

 

控制器类UserController

package com.wlkj.config;

import java.util.List;

import net.sf.json.JSONObject;

import com.jfinal.core.Controller;
import com.jfinal.kit.HttpKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.druid.DruidPlugin;

public class UserController extends Controller{

    public void getUsers(){
        String param = HttpKit.readData(getRequest());
        JSONObject jo = JSONObject.fromObject(param);
        String url = jo.getString("url");
        String username = jo.getString("username");
        String password = jo.getString("password");
        DruidPlugin plugin = new DruidPlugin(url, username, password);
        ActiveRecordPlugin arp= new ActiveRecordPlugin(plugin);
        plugin.start();
        arp.start();
        List<Record> lists = Db.find("select * from users");
        for(Record record : lists){
            System.out.println(record);
        }
        arp.stop();
        plugin.stop();
        renderJson("{'success':'ok'}");
    }
}

  

数据库准备,dydatasource1,dydatasource2,表结构都一样,表名users,只是表记录不一样。

这里写图片描述

测试类:

这里写图片描述

修改数据源,改成dydatasource2

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值