jfinal 3.6框架怎么连接另一个数据库,也能使用db.方法

因为一个项目中除了自己业务需要用到一个数据库,可能业务中有些数据来自另一个数据库, 比如有些第三方厂商生成数据,怎么才能在同一个jfnal3.6同时接入另一个数据库呢?

评论区

郭碗珊

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 多数据源情况下,如果有些数据库源连接不成功,但又不能影响其他数据源的连接,如何做?

郭碗珊

2024-11-14 20:34

@北流家园网 这个另一个套没有连成功,也不会影响另一套啊

杜福忠

2024-11-14 21:50

@北流家园网 Java try 吃掉异常就不影响其他业务了

热门反馈

扫码入社