一、整合基本的JDBC
1. 创建新的项目
选择 Mysql 、JDBC、Web
2. application.yml文件中配置连接信息
3. 测试连接信息
效果:默认是用org.apache.tomcat.jdbc.pool.DataSource作为数据源;数据源的相关配置都在DataSourceProperties里面;
二、数据源自动配置的原理
自动配置原理:org.springframework.boot.autoconfigure.jdbc:
1. 参考DataSourceConfiguration,根据配置创建数据源,默认使用Tomcat JDBC连接池;可以使用spring.datasource.type指定自定义的数据源类型;
2. SpringBoot默认可以支持;
org.apache.tomcat.jdbc.pool.DataSource、HikariDataSource、BasicDataSource、
3. 自定义数据源
/**
* 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();
}
}
【提示】根据我们的spring.datasource.type的配置,springboot会自动的使用DataSourceBuilder创建数据源,利用反射创建相应type的数据源,并且绑定相关属性
4. DataSourceInitializer:ApplicationListener;
作用:
runSchemaScripts();运行建表语句;
runDataScripts();运行插入数据的sql语句;
默认加载 类路径下 schema-*.sql、data-*.sql的文件。schema-*.sql时间创建表的文件,另外一个是插入数据的文件!
自定义:在application.yml文件中配置
【提示】schema的配置在下次启动之后还会重新创建表。也就是说schema的配置在项目启动之初配上,之后就不要配置 了,否则项目运行中插入的数据下次启动后创建新表,原先的数据就没有了!
5. 操作数据库
自动配置了JdbcTemplate操作数据库