jeecg 多数据源处理

为什么要用多数据源

随着应用功能的不断增加,以及对高可用高并发的需求,分库分表成了一项很常用的技术。同时,企业内部不同的应用需要打通数据,在数据大集中之前,各个系统的数据还是有自己的独立数据库,为了方便快速实现一些简单的需求,就可能产生直接从其他数据库读取数据的需求。总而言之,多数据源就是要从不同的地方操作数据。

jeecg 的多数据源管理

由于 jeecg 框架主要是应用于企业级的系统,现在只是对关系型数据库实现了多数据源管理。我们先来看一下这个模块的界面图:

image.png

从编辑窗口可以看出,这些字段就是对应了 jdbc 连接关系型数据库所需要的信息,然后再给每个数据源一个唯一标识,用于切换数据源时使用。数据源的数据是保存在 t_s_data_source 表,表字段也没有什么特别难理解的。接下来我们看一下使用多数据源时的关键代码。

jeecg 框架对多数据源的调用都封装在 DynamicDBUtil 这个工具类里,下图是这个类的方法列表。

image.png

工具类里的 dbSources 属性用一个 Map 集合保存了所有配置的数据源,封装的方法参数都包含一个代表某个数据源的key(即管理界面里配置的唯一标识),要进行对应的操作,就用 key 得到 DataSource 对象,然后构造 JdbcTemplate 对象,通过 JdbcTemplate 对象操作数据库。当然,有了 DataSource 对象,就可以用其他喜欢的 ORM 框架来操作数据库了。所谓的多数据源管理,也就是在需要的时候,能方便地获取到 DataSource 对象,再交由其他代码去调用。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180525G1Y6F400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券