SpringBoot学习之路(X2)- JDBC数据访问及自动配置原理

前言

对于数据访问层,无论是SQL还是NOSQL,Spring Boot默认采用整合
Spring Data的方式进行统一处理,添加大量自动配置,屏蔽了很多设置。引入
各种xxxTemplate,xxxRepository来简化我们对数据访问层的操作。对我们来
说只需要进行简单的设置即可。我们将在数据访问章节测试使用SQL相关、
NOSQL在缓存、消息、检索等章节测试。
– JDBC
– MyBatis
– JPA

操作实例

1)、使用idea创建应用

SpringBoot学习之路(X2)- JDBC数据访问及自动配置原理
SpringBoot学习之路(X2)- JDBC数据访问及自动配置原理
选中JPA MySql及Web模块
SpringBoot学习之路(X2)- JDBC数据访问及自动配置原理

可以看到pom.xml文件:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<scope>5.1.25</scope>
</dependency>

这里的mysql我选用5.1.25版本

2)、连接数据库

1、创建yml文件(此次使用yml配置连接数据库)

spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://192.168.2.17:3306/student01
    driver-class-name: com.mysql.jdbc.Driver

3)、效果

默认是用org.apache.tomcat.jdbc.pool.DataSource作为数据源;
数据源的相关配置都在DataSourceProperties里面;

自动配置原理

org.springframework.boot.autoconfigure.jdbc:
SpringBoot学习之路(X2)- JDBC数据访问及自动配置原理

  1. 参考DataSourceConfiguration,根据配置创建数据源,默认使用Tomcat连接池;可以使用spring.datasource.type指定自定义的数据源类型;
  2. SpringBoot默认可以支持;
org.apache.tomcat.jdbc.pool.DataSource、HikariDataSource、BasicDataSource、
  1. 自定义数据源类型
/**
 * Generic DataSource configuration.
 */
@ConditionalOnMissingBean(DataSource.class)
@ConditionalOnProperty(name = "spring.datasource.type")
static class Generic {

   @Bean
   public DataSource dataSource(DataSourceProperties properties) {
       //使用DataSourceBuilder创建数据源,利用反射创建响应type的数据源,并且绑定相关属性
      return properties.initializeDataSourceBuilder().build();
   }

}
  1. DataSourceInitializer:ApplicationListener;
    作用:

     1)、runSchemaScripts();运行建表语句;
    
     2)、runDataScripts();运行插入数据的sql语句;
    

默认只需要将文件命名为:

schema-*.sql、data-*.sql
默认规则:schema.sql,schema-all.sql;
可以使用   
	schema:
      - classpath:department.sql
      指定位置
  1. 操作数据库:自动配置了JdbcTemplate操作数据库

请求访问数据库

1)、创建controller 使用JdbcTemplate访问数据

SpringBoot学习之路(X2)- JDBC数据访问及自动配置原理

2)、访问页面查看结果

SpringBoot学习之路(X2)- JDBC数据访问及自动配置原理