SpringBoot-数据访问之JDBC
导入JDBC
- 数据库驱动需要自行导入
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency>
数据源配置
- 新版本的驱动类为:com.mysql.cj.jdbc.Driver
- 数据库中,时区报错的可以在设置MySQL时区为东八区: set global time_zone='+8:00'
- 然后查看时间是否与系统时间一致: select now();
spring:datasource:url: jdbc:mysql://localhost:3306/db_accountusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driver
测试数据库连接
@Slf4j
@SpringBootTest
class Boot05WebAdminApplicationTests {@AutowiredJdbcTemplate jdbcTemplate;@Testvoid contextLoads() {Long aLong = jdbcTemplate.queryForObject("select count(*) from account_tbl", Long.class);log.info("记录总数:{}",aLong);}
}
JDBC自动配置原理
1. DataSourceAutoConfiguration : 数据源的自动配置
- 修改数据源相关的配置:spring.datasource
- 数据库连接池的配置,是自己容器中没有DataSource才自动配置的
- 底层配置好的连接池是:HikariDataSource


2. DataSourceTransactionManagerAutoConfiguration: 事务管理器的自动配置
3. JdbcTemplateAutoConfiguration: JdbcTemplate的自动配置,可以来对数据库进行crud
- 配置文件 prefix = "spring.jdbc" 来修改JdbcTemplate配置
- @Bean @Primary JdbcTemplate;容器中自动注入JdbcTemplate组件


4. JndiDataSourceAutoConfiguration: jndi的自动配置
5. XADataSourceAutoConfiguration: 分布式事务相关的配置,基于XA⼆阶提交协议的分布式事务数据源
