如何用Jfinal连接多个数据库

ActiveRecordPlugin可以支持多个数据库,多个语言,我们只需要添加多个ActiveRecordPlugin,分别配置即可。

Jfinal连接多个数据库

1. 添加mssql-jdbc-7.4.1.jar和mysql-connector-java-8.0.12.jar分别用于连接sqlserver及mysql数据库。

<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
 <groupId>com.microsoft.sqlserver</groupId>
 <artifactId>mssql-jdbc</artifactId>
 <version>7.4.1.jre8</version>
 <scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>8.0.12</version>
</dependency>

2. 添加数据库配置文件

datasource.properties:

driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbcUrl = jdbc:sqlserver://localhost;Database=test
user = sa
password = 123456
devMode = true  

jdbcUrl2 = jdbc:mysql://localhost/test?characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
user2 = root
password2 =123456
devMode2 =true

3. 配置configPlugin

 public void configPlugin(Plugins me) {

 	// 连接sqlserver数据库
 	C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl"), getProperty("user"), getProperty("password"), getProperty("driver"));
  me.add(c3p0Plugin);
  // 给数据源添加别名sqlserver
  ActiveRecordPlugin arp = new ActiveRecordPlugin("sqlserver",c3p0Plugin);
  // 添加sqlserver方言 SqlServer方言在jfinal2.0以上才引入
  arp.setDialect(new SqlServerDialect());
  me.add(arp);

  // 连接mysql数据库
 	C3p0Plugin c3p0Plugin2 = new C3p0Plugin(getProperty("jdbcUrl2"), getProperty("user2"), getProperty("password2"));
  me.add(c3p0Plugin2);
  // 给数据源添加别名mysql
  ActiveRecordPlugin arp2 = new ActiveRecordPlugin("mysql",c3p0Plugin2);
  // 添加mysql方言
  arp2.setDialect(new MysqlDialect());
  me.add(arp2);

 }

JFinal 的方言仅用于 Model 的 save()、update()、delete()等等由框架生成 sql 的方法,而开发者自由传入的 sql 框架并不会干预,这通常是在使用 find()、query()、paginate() 之类需要传入 sql 的方法。
JFinal 默认方言为mysql的,如果不配置方言用Model中的方法会出莫名其妙的问题。

ActiveRecordPlugin提供了MysqlDialect、SqlServerDialect、OracleDialect、Sqlite3Dialect、AnsiSqlDialect实现类,来支持mysql、sqlserver、oracle、sqlite3、ANSI等数据库的支持。

4. 使用

// 查询sqlserver的test表
List<Record> rs = Db.use("sqlserver").find("select * from test");

// 查询mysql的test表
List<Record> rs1 = Db.use("mysql").find("select * from test");

以上就是如何用Jfinal连接多个数据库的详细内容,更多关于Jfinal连接多个数据库的资料请关注我们其它相关文章!

(0)

相关推荐

  • JavaWeb如何实现统一查询接口(jfinal)

    我发现我所有有查询的controller都要调用service层的两个方法 getById和getByKey 参数大致一样 写的时候基本都是复制粘帖... 于是idea老提示大量重复代码 好烦啊 于是就改进了一下 让所有有关查询的service实现一个QueryService的接口 接口定义俩方法 import com.jfinal.plugin.activerecord.Page; public interface QueryService<T> { Page<T> getByI

  • java 中JFinal getModel方法和数据库使用出现问题解决办法

    JFinal getModel方法(从页面表单中获取Model对象)+数据库存储问题 一.getmodel方法 1.在JConfig配置类中的数据库映射(存储到数据库时需要此配置) public void configPlugin(Plugins me) { C3p0Plugin cp = null; try { cp = new C3p0Plugin( "jdbc:mysql://localhost:3306/huaxuetang?useUnicode=true&characterEn

  • Bootstrap+jfinal实现省市级联下拉菜单

    小小一个省市级关联菜单,却耗费了一个很多时间来摸索,原因在于对jquery不熟练,既然这么辛苦完成了一个组件,自然想要共享出来,让需要的人使用. 这只是一个基础版,后续还要再进行优化. 代码:省市级关联菜单下载地址 说明: sql语句就不再说了,里面有"city.sql"."provincial.sql"两个文件. 1.先说说获取数据 public void initProcitys() { logger.info("获取所在地区"); List

  • JFinal极速开发框架使用笔记分享

    记录第一次使用JFinal,从简单的框架搭建到增删改查,从自带的方法到正常框架习惯的使用方式. JFinal官网:http://www.jfinal.com/ JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java语言所有优势的同时再拥有ruby.python.php等动态语言的开发效率. JFinal有如下主要特点: MVC架构,设计精巧,使用简单 遵循COC原则,零配置,无x

  • Bootstrap+jfinal退出系统弹出确认框的实现方法

    本文为大家分享了jfinal与bootstrap的登出操作,旨在介绍如何通过a标签弹出登出确认框,然后发送退出请求到jfinal,然后再刷新页面的做法.主要难点在于有以下两点: 1.如果通过a标签的内容弹出登出确认框: 2.如何通过a标签刷新对应弹出的页面. 一.前端技术 1.构建a标签 复制代码 代码如下: <a href="${ctx}/mem/logout" target="ajaxTodo" callback="ajaxDone"

  • jfinal与bootstrap的登录跳转实战演习

    前言:终于来了一篇有质量的文章,我个人感觉非常不错,<jfinal与bootstrap之间的登录跳转实战>.具体内容包含有点击登录弹出模态框.点击登录确认按钮后的validate.jfinal的validate.jfinal的session管理.ajax请求与返回信息处理.页面间智能跳转. 弹出模态框以及jquery validate可以参照jquery weebox总结.弹出窗口不居中显示?.jquery validate初上手系列文章. 从jfinal的validate说起 当然你可以参考

  • JFinal使用ajaxfileupload实现图片上传及预览

    本文实例为大家分享了JFinal使用ajaxfileupload实现图片上传预览的具体代码,供大家参考,具体内容如下 1.前端jsp页面核心代码 <script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery.min.js"></script> <script type="text/javascript" src=&

  • jfinal与bootstrap的登出实战详解

    前言:本篇推出"jfinal与bootstrap的登出实战",旨在介绍如果通过a标签弹出登出确认框,然后发送退出请求到jfinal,然后再刷新页面的做法.主要难点在于1.如果通过a标签的内容弹出登出确认框,2.如何通过a标签刷新对应弹出的页面. 前端技术 1.构建a标签 复制代码 代码如下: <a href="${ctx}/mem/logout"  target="ajaxTodo" callback="ajaxDone"

  • JFinal实现伪静态的方法

    JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java语言所有优势的同时再拥有ruby.python.php等动态语言的开发效率!为您节约更多时间,去陪恋人.家人和朋友 :) JFinal框架可以实现伪静态,需要在configHandler中设置. JFinal 可以用 Handler 完全自定义路由规则,目前 JFinal 采用的路由规则兼顾了简单.高效.可用性方面的考虑. J

  • JFINAL+Ajax传参 array 数组方法 获取request中数组操作

    前台代码js var _list =[]; for (var i = 0; i < array.length; i++) { _list[i] = array[i]; } $.ajax({ type: "post", url: "", data: {"ids": _list }, dataType: "json", success: function(data){ alert("添加成功"); } }

  • JFinal 调用存储过程的步骤

    存储过程 存储过程(stored procedure)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行. 存储过程既可以有参数有返回值,且有多个返回值.但是它与函数不同,存储过程的返回值只是指明执行是否成功,且不能像函数那样被直接调用,只能利用 execute 来执行存储过程. 创建储存过程 无参数,无返回值 --创建名为 PERSON_PROC 的无参数.无返回值的存储过程 create procedure PERSON_PROC

  • jfinal添加jcaptcha验证码实现方法

    复制代码 代码如下: package com.g.core.common.JCaptcha; import java.awt.Color;import java.awt.Font; import com.octo.captcha.component.image.backgroundgenerator.BackgroundGenerator;import com.octo.captcha.component.image.backgroundgenerator.FileReaderRandomBac

随机推荐