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 ...
随机推荐
- SPOJ:LCS2 - Longest Common Substring II
题面 给定一些字符串,求出它们的最长公共子串 输入格式 输入至多 \(10\) 行,每行包含不超过 \(100000\)个的小写字母,表示一个字符串 输出格式 一个数,最长公共子串的长度 若不存在最长 ...
- Node.js 的安装
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 的运行环境,简单的说就是运行在服务端的 JavaScript.所以学起来还是比较容易接受的. Node.js 使用事件驱动 ...
- RGB与INT类型的转换
开发时遇到的问题,设置图层样式时颜色的返回值是uint,一时不知改怎么转换为C#常用的RGB值了. 一番百度,结果如下: RGB = R + G * 256 + B * 256 * 256 因此可得到 ...
- HiJson工具 && 火狐浏览器中的jsonHandle插件(以及乱码问题的解决)-->来转换json串的格式
原文:http://blog.csdn.net/cjm2484836553/article/details/72453907 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] ...
- _tcsrchr
原文:http://www.cnblogs.com/diyunpeng/archive/2012/01/18/2325289.html _tcsrchr #include <afx.h> ...
- Python爬虫教程-03-使用 chardet 检测编码
Spider-03-使用chardet 继续学习python爬虫,我们经常出现解码问题,因为所有的页面编码都不统一,我们使用chardet检测页面的编码,尽可能的减少编码问题的出现 网页编码问题解决 ...
- Software Testing Techniques Homework 1
I have met some errors in recent years, one of them which impress me most. It happend when I try to ...
- D3 JS study notes
如何使用d3来解析自定义格式的数据源? var psv = d3.dsvFormat("|"); // This parser can parse pipe-delimited t ...
- Java学习---多线程的学习
基础知识 每个正在系统上运行的程序都是一个进程(process).每个进程包含一到多个线程(thread).进程也可能是整个程序或者是部分程序的动态执行. 线程是一组指令的集合,或者是程序的特殊段,它 ...
- linux 三大利器 grep sed awk sed
sed主要内容和原理介绍 sed 流处理编辑器 sed一次处理一行内容,读入一行处理一行 sed不改变文件内容(除非重定向) sed 命令行格式 $ sed [options] 'command' f ...