Spring Boot-JDBC
Spring Boot & JDBC
1. Spring Boot整合JDBC操作数据库
JDBC操作数据库流程
- 加载数据库驱动
- 建立数据库连接
- 创建数据库操作对象
- 定义操作的SQL语句
- 执行数据库操作
- 获取并操作结果集
- 关闭对象,回收资源
不建议使用JDBC
将Spring JDBC整合到Spring Boot
- pom.xml引入依赖
1 | <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-jdbc --> |
- 修改application.yml
1 | spring: |
- DAO层代码
-
jdbcTemplate.update
适用于insert, update和delete操作 -
jdbcTemplate.queryForObject
用于查询单条记录并返回结果 -
jdbcTemplate.query
用于查询结果列表 -
BeanPropertyRowMapper
可以将数据库字段的值向数据库映射,满足驼峰标识也可以自动映射e.x. 数据库create_time映射到createTime属性
1 | package com.haven.dao; |
2. JDBC多数据源
(1) application.yml配置两个数据源,第一个叫primary, 第二个叫secondar,也可以自己取名:
1 | server: |
(2) 通过Java Config将数据源注入到Spring上下文
primaryJdbcTemplate使用primaryDataSource数据源操作数据库jdbc
secondaryJdbcTemplate使用secondaryDataSource数据源操作数据库test
DataSourceConfig.java
1 | package com.haven.config; |
(3) 之后修改dao层代码:
ArticleJDBCDAO.java
1 | package com.haven.dao; |
(4) 修改service层代码
ArticleRestJDBCServiceImpl.java
1 | package com.haven.service; |
3. Spring JDBC JTA实现分布式事务
@Transactional
无法跨库完成分布式事务
通过整合JTA实现分布式事务
- 引入maven依赖
1 | <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-jta-atomikos --> |
- 修改application.yml配置文件
1 | primarydb: |
- 编写配置类
DataSourceConfig.java
1 | package com.haven.config; |
- 配置事务管理器™
TransactionManagerConfig.java
1 | package com.haven.config; |