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
