springboot集成beetlsql以及支持多数据源

本篇或许是为数不多的展示beetlsql多数据源设计思路,甚至可能是目前网上能找到的唯一一篇介绍beetlsql多数据源的文章。

为什么推荐用beetlsql:目前国内最火的支持数据库持久化的DAO工具应该还是mybatis,因为mybatis出现的时间早,并且提供了比较强大的数据库持久化处理能力,而我本人也是一直在用mybatis。但是mybatis仍有许多不足之处,想必每一位开发者在开发过程中应该也深有体会。而今天的主角,目前在国内是一款还没有那么火的DAO工具,beetlsql的官网介绍是这样说的“ 它是一个超过MyBatis的全功能Java DAO工具,同时具有Hibernate 优点 & Mybatis优点功能,能自动能生成大量常用的SQL的应用。”。该框架与MyBatis以及Hibernate的 网上可以搜索到,在此不在累述,只贴出一张比较的图:

这个比较是否权威,是否全面本人不做说明。在此我结合自己使用的感受来说明beetlsql的优点。

在springboot中如果想使用beetlsql,如果用maven管理jar包,需要按下面引入:

引入支撑包后,我这里采用yml配置方式,配置如下:

yml配置方式的好处是结构清晰易懂,书写方便。

通常的我们连接一个数据库都有以下几步:

1、创建一个数据源:

2、配置参数配置扫描:

3、创建SqlManager管理器:

上述过程中采用的使用Repository仓库模式,这种模式映射的DAO工具在使用时非常方便,在配置的包路径下创建一个Repository即可连接上同一层级配置的数据库。如下:

Repository模块会继承一个BaseMapper,该接口是beetlsql提供的接口支持工具,当然,我们也可以自己创建一个Mapper接口用来替换它。Repository的引用与mybatis中的mapper映射接口是类似的,但是功能却比mybatis强大很多。Repository提供了大量内置sql生成接口,可以根据连接数据的模板自动匹配生成对应的sql:

BaseMapper源码支持多种接口实现对数据库的原生操作。你再也不用担心sql不会写,写错了。如果这些sql不能满足你的业务,不用担心,你的业务有多复杂由你来定,你可以随心所欲的书写自己的sql。

这中sql的书写方式是不是让你耳目一新,如果你以前使用mybatis,你一定会为这种格式惊叹。beetlsql中使用md文件格式编辑sql,是的sql书写更加纯净无污染。而且更易阅读和使用。beetlsql同spring-jpa类似都支持了数据与bean对象的模型映射,你可以大大减少对象模型的映射书写。在定义属性时,只需按照驼峰规则进行书写,beetlsql就会自动帮你完成数据结构映射,如果你偏不遵循驼峰书写方式(估计没有公司要你),那也没关系,beetlsql还贴心的提供的了注解映射:

@Column注解可以帮你对应相关的表字段。想必你应该没有什么接口在写错sql了吧。

接下来就是我们的重点,beetlsql如何实现多数据源连接。

其实从单数据的连接我已埋下了伏笔。该设计的思路是通过配置的路径自动需找相应的数据源,配置不同的Repository,这样不同的Repository包下实现的接口就连接不同的数据源了。关键设计在于

DataSourceBuilderFactory.buildCommonDataSource(id, environment);

创建数据源时根据配置的不同路径去读取数据源:

id取自我们自定义的多数据源注解接口

图中标注的Repository包路径就成了我们放置不同数据源的DAO工具位置。这样在不同的Repository路径下创建的接口就会指向不同的数据源,同时同一个数据源又归在同一个路径下,这种方式非常便于管理不同数据源的sql。

我们再来看看使用了beetlsql后的后台日志是如何打印的:

这么人性化的输出,作为开发者,想必你不会拒绝。同时也可以看出这两条sql是来源与两个数据源,一个mysql一个oracle,完美的将多数据源整合。同时响应时间仅为4-8ms,这些应该足够让我们选择beetlsql了吧。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您好!对于在Spring Boot中集成多数据源,可以通过以下步骤来实现Camunda与Spring Boot的集成: 1. 首先,确保已经在您的Spring Boot项目中引入了Camunda依赖。可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.camunda.bpm.springboot</groupId> <artifactId>camunda-bpm-spring-boot-starter</artifactId> <version>7.15.0</version> </dependency> ``` 2. 接下来,您需要在application.properties或application.yml文件中配置Camunda的数据源。例如,如果您想要使用两个数据源,可以进行如下配置: ```yaml # 第一个数据源 spring.datasource.url=jdbc:mysql://localhost:3306/db1 spring.datasource.username=username1 spring.datasource.password=password1 # 第二个数据源 spring.datasource.db2.url=jdbc:mysql://localhost:3306/db2 spring.datasource.db2.username=username2 spring.datasource.db2.password=password2 # Camunda 数据源配置 camunda.bpm.database.schema-update=true camunda.bpm.database.table-prefix=camunda. ``` 3. 在您的应用程序中,您可以使用`@Configuration`注解创建多个`DataSource` bean,并将它们注入到Camunda配置中。例如: ```java @Configuration public class DataSourceConfig { @Primary @Bean(name = "dataSource1") @ConfigurationProperties(prefix = "spring.datasource") public DataSource dataSource1() { return DataSourceBuilder.create().build(); } @Bean(name = "dataSource2") @ConfigurationProperties(prefix = "spring.datasource.db2") public DataSource dataSource2() { return DataSourceBuilder.create().build(); } } @Configuration public class CamundaConfig { @Autowired @Qualifier("dataSource1") private DataSource dataSource1; @Autowired @Qualifier("dataSource2") private DataSource dataSource2; @Bean public ProcessEngineConfigurationImpl processEngineConfiguration() { SpringProcessEngineConfiguration config = new SpringProcessEngineConfiguration(); config.setDataSource(dataSource1); config.setDatabaseSchemaUpdate("true"); // 其他配置项... return config; } // 其他Camunda bean的配置... } ``` 在上面的示例中,我们通过`@Qualifier`注解来指定要注入的数据源。`@Primary`注解用于指定主要的数据源。 这样,您就可以在Spring Boot中成功集成多个数据源,并使用Camunda进行流程管理和工作流引擎相关的操作。 希望以上信息对您有所帮助!如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值