开发者学堂课程【SpringBoot快速掌握 - 核心技术:JDBC& ;自动配置原理 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/612/detail/9273
JDBC& ;自动配置原理
内容介绍
一、Pom.xml 文件代码展示
二、配置操作演示
三、课堂笔记
四、整合基本 JDBC 与数据源
一、Pom.xml 文件代码展示
<!-- JDBC的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</ dependency>
<!--连接数据库的驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</ artifactId>
<scope>runtime</ scope>
< / dependency>
<!--web依赖-->
<dependency>
<groupId>org-springframework.bopt</grpupId>
<artifactId>spring-toot-starter-web</artifactId>
</dependency>
二、配置操作演示
创建项目时的操作步骤:
首先需要在 idea 中创建一个新的 springboot 项目,因为需要与数据库进行交互,所以在添加依赖时需要加入 mysql 和原生 JDBC 的依赖,为了展示方便,也加上 web 的依赖
1.在命令提示符中输入以下指令启动 mysql 服务
#docker ps -a
#docker start ad10e4bc5c6a
2.在 application.yml 中做如下配置:
spring:
datasource:
username : root
password: 123456
url: jdbc :mysql: //192.168.15.22:3306/jdbc
driver-class-name: com.mysql.jdbc.Driver
3.在测试类中编写以下代码并进行测试
package com.atguigu.springboot;
import ...
@Runwith(SpringRunner.c1ass)
@SpringBootTest
public class SpringBoot06DataJdbcApplicationTests {
@Autowired
DataSource;
@Test
public void contextLoads() throws SQLException {
System.out.println(dataSource.getClass());
Connection = dataSource.getConnection();
System.out.println(connection);
connection.close();
}
}
注:测试结果是没有问题的
4.数据源配置类( DataSourceConfiguration )部分代码展示:
@Bean
@ConfigurationProperties(prefix ="spring.datasource.tomcat")
public org.apache.tomcat.jdbc.pool.DataSource dataSource(
DataSourceProperties properties) {
org.apache.tomcat.jdbc.pool.DataSource dataSource = createDataSource(
properties, org.apache.tomcat.jdbc.pool.DataSource.class);
DatabaseDriver = DatabaseDriver
.fromJdbcUrl(properties.determineUr1());
String validationQuery=databaseDriver.getValidationQuery();
if(validationQuery != nu11) {
dataSource.setTest0nBorrow(true);
dataSource.setValidationQuery(validationQuery);
}
return dataSource;
}
}
5.application.yml 文件代码展示:
spring:
datasource:
username: root
password: 123456
ur1: jdbc :mysql://192.168.15.22:3306/jdbc
driver-class-name: com.mysql.jdbc.Driver
schema :
- classpath: department.sql
6.HelloWordController 类部分的代码展示:
Import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework. stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
import java.util.Map;
@Controller
public class HelloController {
@Autowired
JdbcTemplate;
@ResponseBody
@GetMapping("/query")
public Map map(){
List> list = jdbcTemplate.queryForList( sql: "select* FRON department");
return list.get(0);
}
}
三、课堂笔记
<!--JDBC的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</ dependency>
<!--连接数据库的驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</ artifactId>
<scope>runtime</ scope>
< / dependency>
<!--web依赖-->
<dependency>
<groupId>org-springframework.bopt</grpupId>
<artifactId>spring-toot-starter-web</artifactId>
</dependency>
效果:
默认是用 org.apache.tomcat.jdbc.pool.DataSource 作为数据源;数据源的相关配置都在 DataSourceProperties 里面﹔
自动配置原理∶
org.springframework.boot.autoconfigure.jdbc :
1、参考 DataSourceConfiguration ,根据配置创建数据源,默认使用 Tomcat 连接池;可以使用 spring.datasource.type 指定自定义的数据源类型;
2、SpringBoot 默认可以支持;
org.apache.tomcat.jdbc.pool.DataSource、HikariDataSource、BasicDataSource、
3,自定义数据源类型
/**
Generic DataSource configuration.*/
@Conditional0nMissingBean(Datasource.class)
@conditional0nProperty(name = "spring.datasource.type")static class Generic {
@Bean
public DataSource dataSource(DataSourceProperties properties){
//使用 DataSourceBuilder 创建数据源,利用反射创建响应 type的数据源,并且绑定相关属性 return properties.initializeDataSourceBuilder().build();
}}
4、DataSourcelnitializer : ApplicationListener ;
作用:
1 ) 、runSchemaScripts(); 运行建表语句;
2 ) 、runDataScripts() ;运行插入数据的 sql 语句;默认只需要将文件命名为∶
默认只需将文件命名为:
schema-*.sql、 data-*.sql
默认规则: schema.sql , schema-all.sql;
可以使用
schema:
- classpath:department.sql
指定位置
5,操作数据库:自动配置了jdbcTemplate操作数据库
四、整合基本 JDBC与数据源
1、引入 starter
- spring-boot-starter-jdbc
2、配置 application.yml
3、测试
4、高级配置∶使用druid数据源
-引入 druid
-配置属性
5、配置 druid 数据源监控