首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
jfinal 3.6框架怎么连接另一个数据库,也能使用db.方法
郭碗珊
2024-10-30 15:39
因为一个项目中除了自己业务需要用到一个数据库,可能业务中有些数据来自另一个数据库, 比如有些第三方厂商生成数据,怎么才能在同一个jfnal3.6同时接入另一个数据库呢?
项目:
JFinal
评论区
郭碗珊
2024-10-30 15:53
以下方法试了不行,才来问一下,以下是我的方法
在JFinal 3.6中连接第二套数据库,需要按照以下步骤进行操作:
1. 配置数据库连接信息
首先,你需要在项目的配置文件中添加第二套数据库的连接信息。通常,JFinal项目的配置文件是config.txt或JFinalConfig类中的configConstant方法。
使用config.txt配置文件
在config.txt中添加第二套数据库的连接信息:
# 第一套数据库配置
db.url=jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf8
db.user=root
db.password=root
db.driverClass=com.mysql.jdbc.Driver
# 第二套数据库配置
db2.url=jdbc:mysql://localhost:3306/db2?useUnicode=true&characterEncoding=utf8
db2.user=root
db2.password=root
db2.driverClass=com.mysql.jdbc.Driver
使用JFinalConfig类配置
在JFinalConfig类的configConstant方法中添加第二套数据库的连接信息:
public void configConstant(Constants me) {
loadPropertyFile("config.txt");
me.setDevMode(getPropertyToBoolean("devMode", false));
// 第一套数据库配置
DruidPlugin dp1 = new DruidPlugin(getProperty("db.url"), getProperty("db.user"), getProperty("db.password"), getProperty("db.driverClass"));
me.add(dp1);
// 第二套数据库配置
DruidPlugin dp2 = new DruidPlugin(getProperty("db2.url"), getProperty("db2.user"), getProperty("db2.password"), getProperty("db2.driverClass"));
me.add(dp2);
}
2. 创建数据库连接池
在JFinalConfig类的configPlugin方法中创建第二套数据库的连接池:
public void configPlugin(Plugins me) {
// 第一套数据库连接池
ActiveRecordPlugin arp1 = new ActiveRecordPlugin("db1", dp1);
me.add(arp1);
// 注册模型类
arp1.addMapping("user", User.class);
// 第二套数据库连接池
ActiveRecordPlugin arp2 = new ActiveRecordPlugin("db2", dp2);
me.add(arp2);
// 注册模型类
arp2.addMapping("product", Product.class);
}
3. 创建模型类
为第二套数据库创建相应的模型类,并在模型类中指定使用的数据库连接池名称:
public class Product extends Model {
public static final Product dao = new Product().dao();
// 指定使用第二套数据库连接池
public Product() {
setDbKey("db2");
}
}
4. 使用模型类进行数据库操作
现在你可以使用模型类进行第二套数据库的操作:
public class ProductController extends Controller {
public void index() {
List products = Product.dao.find("select * from product");
renderJson(products);
}
}
回复
89426094
2024-10-30 17:13
Db.use("ds1").find(sql)
回复
郭碗珊
2024-10-30 17:19
@89426094
你这不太好吧,
回复
JFinal
2024-10-30 17:41
第一套数据库连接池添加在前,会成为默认数据源
ActiveRecordPlugin arp1 = new ActiveRecordPlugin("db1", dp1);
me.add(arp1);
用的时候不需要指定,直接用:
Db.find(...)
回复
郭碗珊
2024-11-01 10:38
问题 也解决,谢谢各位
回复
北流家园网
2024-11-02 16:15
@JFinal
多数据源情况下,如果有些数据库源连接不成功,但又不能影响其他数据源的连接,如何做?
回复
发送
我要反馈
热门反馈
扫码入社
在JFinal 3.6中连接第二套数据库,需要按照以下步骤进行操作:
1. 配置数据库连接信息
首先,你需要在项目的配置文件中添加第二套数据库的连接信息。通常,JFinal项目的配置文件是config.txt或JFinalConfig类中的configConstant方法。
使用config.txt配置文件
在config.txt中添加第二套数据库的连接信息:
# 第一套数据库配置
db.url=jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf8
db.user=root
db.password=root
db.driverClass=com.mysql.jdbc.Driver
# 第二套数据库配置
db2.url=jdbc:mysql://localhost:3306/db2?useUnicode=true&characterEncoding=utf8
db2.user=root
db2.password=root
db2.driverClass=com.mysql.jdbc.Driver
使用JFinalConfig类配置
在JFinalConfig类的configConstant方法中添加第二套数据库的连接信息:
public void configConstant(Constants me) {
loadPropertyFile("config.txt");
me.setDevMode(getPropertyToBoolean("devMode", false));
// 第一套数据库配置
DruidPlugin dp1 = new DruidPlugin(getProperty("db.url"), getProperty("db.user"), getProperty("db.password"), getProperty("db.driverClass"));
me.add(dp1);
// 第二套数据库配置
DruidPlugin dp2 = new DruidPlugin(getProperty("db2.url"), getProperty("db2.user"), getProperty("db2.password"), getProperty("db2.driverClass"));
me.add(dp2);
}
2. 创建数据库连接池
在JFinalConfig类的configPlugin方法中创建第二套数据库的连接池:
public void configPlugin(Plugins me) {
// 第一套数据库连接池
ActiveRecordPlugin arp1 = new ActiveRecordPlugin("db1", dp1);
me.add(arp1);
// 注册模型类
arp1.addMapping("user", User.class);
// 第二套数据库连接池
ActiveRecordPlugin arp2 = new ActiveRecordPlugin("db2", dp2);
me.add(arp2);
// 注册模型类
arp2.addMapping("product", Product.class);
}
3. 创建模型类
为第二套数据库创建相应的模型类,并在模型类中指定使用的数据库连接池名称:
public class Product extends Model {
public static final Product dao = new Product().dao();
// 指定使用第二套数据库连接池
public Product() {
setDbKey("db2");
}
}
4. 使用模型类进行数据库操作
现在你可以使用模型类进行第二套数据库的操作:
public class ProductController extends Controller {
public void index() {
List products = Product.dao.find("select * from product");
renderJson(products);
}
}