SpringBoot2.0 基础案例(06):引入JdbcTemplate,和多数据源配置

1本文源码 2GitHub:知了一笑 3https://github.com/cicadasmile/spring-boot-base

一、JdbcTemplate对象

1、JdbcTemplate简介

在Spring Boot2.0框架下配置数据源和通过JdbcTemplate访问数据库的案例。

SpringBoot对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。

2、JdbcTemplate核心方法

11)execute方法:可以用于执行任何SQL语句; 22)update方法batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句; 33)query方法及queryFor方法:用于执行查询相关语句; 44)call方法:用于执行存储过程、函数相关语句。

二、SpringBoot2中用法

1、导入Jar包

1<!-- 数据库依赖 --> 2<dependency> 3 <groupid>mysql</groupid> 4 <artifactid>mysql-connector-java</artifactid> 5 <version>5.1.21</version> 6</dependency> 7<!-- JDBC 依赖 --> 8<dependency> 9 <groupid>org.springframework.boot</groupid> 10 <artifactid>spring-boot-starter-jdbc</artifactid> 11</dependency>

2、配置数据源信息

1spring: 2 application: 3 # 应用名称 4 name: node06-boot-jdbc 5 datasource: 6 # 数据源一:data_one 库 7 primary: 8 # 2.0开始的版本必须这样配置 9 jdbc-url: jdbc:mysql://localhost:3306/data_one 10 #url: jdbc:mysql://localhost:3306/data_one 11 username: root 12 password: 123 13 driver-class-name: com.mysql.jdbc.Driver 14 # 数据源二:data_two 库 15 secondary: 16 # 2.0开始的版本必须这样配置 17 jdbc-url: jdbc:mysql://localhost:3306/data_two 18 #url: jdbc:mysql://localhost:3306/data_two 19 username: root 20 password: 123 21 driver-class-name: com.mysql.jdbc.Driver

3、数据源代码配置

1)数据源一的配置

@Primary 注解表示该数据源作为默认的主数据库。

1/** 2 * 数据源一配置 3 */ 4@Configuration 5public class DataOneConfig { 6 7 @Primary // 主数据库 8 @Bean(name = "primaryDataSource") 9 @Qualifier("primaryDataSource") 10 @ConfigurationProperties(prefix = "spring.datasource.primary") 11 public DataSource primaryDataSource (){ 12 return DataSourceBuilder.create().build() ; 13 } 14 15 @Bean(name = "primaryJdbcTemplate") 16 public JdbcTemplate primaryJdbcTemplate ( 17 @Qualifier("primaryDataSource") DataSource dataSource){ 18 return new JdbcTemplate(dataSource); 19 } 20}

2)数据源二配置

1/** 2 * 数据源二配置 3 */ 4@Configuration 5public class DataTwoConfig { 6 @Bean(name = "secondaryDataSource") 7 @Qualifier("secondaryDataSource") 8 @ConfigurationProperties(prefix="spring.datasource.secondary") 9 public DataSource secondaryDataSource() { 10 return DataSourceBuilder.create().build(); 11 } 12 13 @Bean(name = "secondaryJdbcTemplate") 14 public JdbcTemplate secondaryJdbcTemplate( 15 @Qualifier("secondaryDataSource") DataSource dataSource) { 16 return new JdbcTemplate(dataSource); 17 } 18}

4、编写一个简单的测试类

1@RestController 2public class JdbcController { 3 private static final Logger LOG = LoggerFactory.getLogger(JdbcController.class); 4 5 // 数据源一 6 @Autowired 7 @Qualifier("primaryJdbcTemplate") 8 private JdbcTemplate primaryJdbcTemplate ; 9 10 // 数据源二 11 @Autowired 12 @Qualifier("secondaryJdbcTemplate") 13 private JdbcTemplate secondaryJdbcTemplate ; 14 15 /** 16 * 多数据源查询 17 */ 18 @RequestMapping("/queryData") 19 public String queryData (){ 20 String sql = "SELECT COUNT(1) FROM d_phone" ; 21 Integer countOne = primaryJdbcTemplate.queryForObject(sql,Integer.class) ; 22 Integer countTwo = secondaryJdbcTemplate.queryForObject(sql,Integer.class) ; 23 LOG.info("countOne=="+countOne+";;countTwo=="+countTwo); 24 return "SUCCESS" ; 25 } 26}

三、源代码地址

1GitHub地址:知了一笑 2https://github.com/cicadasmile/spring-boot-base 3码云地址:知了一笑 4https://gitee.com/cicadasmile/spring-boot-base

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )