JFinal 动态数据源

来源:互联网 发布:iphone伪装mac地址 编辑:程序博客网 时间:2024/06/08 10:36

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

这里写图片描述

原创粉丝点击