jfinal多数据源ActiveRecordPlugin
因为项目需要从多个数据库取数据,所以需要配置多个数据源
尝试了ActiveRecordPlugin和DruidPlugin的多数据源,但是因为DruidPlugin在本地一直报错一个很奇怪的语法错误,所以就选用了ActiveRecordPlugin
总的来说就是多个数据源配置多个ActiveRecordPlugin
直接使用如下代码即可,不过因为我是太多的数据源不想一个个定义plugin,所以就选用循环读取文件的形式
int i=0;
while(true){
if(PropKit.get("jdbcUrl"+i)==null){
break;
}else{
C3p0Plugin cp = new C3p0Plugin(
PropKit.get("jdbcUrl"+i),
PropKit.get("user"+i),
PropKit.get("password"+i),
PropKit.get("driver"+i));
cp.setInitialPoolSize(3);
cp.setMaxIdleTime(10);
cp.setMinPoolSize(3);
cp.setMaxIdleTime(6);
me.add(cp); ActiveRecordPlugin arp = null;
if(i>0){
arp = new ActiveRecordPlugin("db"+i,cp);
}else{
arp = new ActiveRecordPlugin(cp);
}
// arp2.setDialect(new AnsiSqlDialect()); 连接 sql2008 特有的解决字符 问题
if(PropKit.get("driver"+i).indexOf("mysql")>-1){
arp.setDialect(new MysqlDialect());///mysql
} else{
arp.setDialect(new SqlServerDialect());///sqlserver
}
me.add(arp); //配置数据表映射写到一个文件中
if(PropKit.get("state"+i).indexOf("pro")>-1){
DbMappingKit.mapping(arp);
}else if(PropKit.get("state"+i).indexOf("fb")>-1){
FbMappingKit.mapping(arp);
}else if(PropKit.get("state"+i).indexOf("wx")>-1){
WxMappingKit.mapping(arp);
}else if(PropKit.get("state"+i).indexOf("center")>-1){
TaskCenterMappingKit.mapping(arp);
} }
i++;
}
其中
arp = new ActiveRecordPlugin("db"+i,cp); 是给除第一个以外的其他链接建立连接别名。
我们常用的DB.update(sql),默认使用么有别名的第一个数据源。
Db.use("db1").update(sql); 这样可以使用其他数据源
与http://jingyan.baidu.com/article/7f41ecec3b2b0e593d095c35.html类似,可以参考一下。
jfinal多数据源ActiveRecordPlugin的更多相关文章
- JFinal 源码分析 [DB+ActiveRecord]
我记得以前有人跟我说,“面试的时候要看spring的源码,要看ioc.aop的源码"那为什么要看这些开源框架的源码呢,其实很多人都是"应急式"的去读,就像读一篇文章一下, ...
- JFinal 的源代码超具体的分析DB+ActiveRecord
我记得有人告诉我."面试一下spring源代码.看ioc.aop源代码"那为什么要看这些开源框架的源代码呢,事实上非常多人都是"应急式"的去读.就像读一篇文章一 ...
- ActiveRecord初始化,可以实现jfinal系统启动完成后,再建立数据库连接
1.JFinalConfig的afterJFinalStart方法,可以实现系统启动成功后,调用的方法 2.ActiveRecord 多数据源初始化 package com.meiah.common; ...
- JFinal源码详解
JFinal的框架我24号的一篇博文写到过,它优秀的地方在精简代码上,那么有两处源码是我觉得是值得我们要好好解析一下,一处是初始化加载—servlet跳转,另一处是DB+ActiveRecord的映射 ...
- jfinal框架教程-学习笔记(二)
上一节介绍了jfinal框架的简单搭建,这节通过一个小例子了解jfinal的结构和特点 先上图 1.建数据库(我用的是oracle数据库,其他的相对也差不多) -- Create table crea ...
- Jfinal 入门
Jfinal 入门 IDE----->IDEA 新建项目 新建web项目 添加maven特性 方便导入jar包,不用一个个导入了 配置pom.xml <dependencies> & ...
- JFinal开发web项目出现故障小记
导读 作为中国优秀的开源项目之中的一个JFinal有着极速开发的优点,是中小型应用开发的首选.在导师的建议下.我使用了JFinal来开发一个Java服务端应用,官方教程非常easy.就几十页(当然是中 ...
- JFinal极速开发框架使用笔记
记录第一次使用JFinal,从简单的框架搭建到增删改查,从自带的方法到正常框架习惯的使用方式. JFinal官网:http://www.jfinal.com/ JFinal 是基于 Java 语言的极 ...
- Jfinal启动源码解读
本文对Jfinal的启动源码做解释说明. PS:Jfinal启动容器可基于Tomcat/Jetty等web容器启动,本文基于Jetty的启动方式做启动源码的解读和分析,tomcat类似. 入口 JF ...
随机推荐
- bootstrap fileinput +springmvc图片上传-krajee
引入的文件 <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/4.4.9/css/filei ...
- 有关动态规划(主要是数位DP)的一点讨论
动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法.20世纪50年代初美国数学家在研究多阶段决策过程的优化问题时, ...
- 事件处理程序DOM0,DOM2,IE的区别总结
一.事件流 顺序 备注 事件冒泡 目标对象~document对象 事件捕获 document对象~目标对象 老版本浏览器不支持 DOM事件流 document对象~目标对象~document对 ...
- NGINX本地服务器解析域名
1.找到hosts文件 ,添加需要解析的域名 2.在cmd命令窗口中检测解析是否生效 3 找到本地服务器的域名配置文件:添加绑定的域名,更改访问的目录 4.添加pathinfo.隐藏index.php ...
- C# 按部门拆分excel文件
按照所属部门不同将excel文件拆分成多个文件 string excel_path = @"G:\zhyue\backup\2018-08-01 读取腾讯邮箱接口-获取一个月内未接收到外部邮 ...
- Python 批量修改文件名并移动文件到指定目录
# -*- coding: utf-8 -*- import os, sys,re,shutil from nt import chdir #读取中文路径 u'' path=u"D:\\zh ...
- .NET 跨平台服务端资料
OWIN Web API: http://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web- ...
- Socket for android 简单实例
最近在实现socket通信,所以写个demo来简单实现下.我用了一种是原始的socket实现,另一种是MINA框架来实现的. 下载demo:http://download.csdn.net/detai ...
- linux 服务器 keras 深度学习环境搭建
感慨: 程序跑不起来,都是环境问题. 1. 安装Anaconda https://blog.csdn.net/gdkyxy2013/article/details/79463859 2. 在 Anac ...
- Visual studio 2015已经停止工作无限重启
今天遇到一个问题,某个文件在撤销的时候vs报错,然后提示到路径 “C:\Users\username\AppData\Roaming\Microsoft\VisualStudio\14.0\***.x ...