JDBC&amp ;自动配置原理|学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速学习JDBC&amp ;自动配置原理

开发者学堂课程【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 数据源监控

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
druid Java 数据库连接
SpringBoot原理分析 | Spring Data整合:JDBC、Druid、Mybatis
SpringBoot原理分析 | Spring Data整合:JDBC、Druid、Mybatis
144 0
|
SQL Java 数据库连接
jdbc的执行流程|不同数据库的驱动配置
jdbc的执行流程|不同数据库的驱动配置
|
SQL Java 数据库连接
联表查询 && 索引 && 事务 && JDBC使用 &&CPU工作原理 && 线程概念 && Thread类的用法
联表查询 && 索引 && 事务 && JDBC使用 &&CPU工作原理 && 线程概念 && Thread类的用法
162 0
|
4月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
62 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
4月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
173 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
4月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
43 6
|
4月前
|
存储 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
74 4
|
4月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(中)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
36 3
|
5月前
|
SQL Java 关系型数据库
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
74 0
|
7月前
|
Java 数据库连接 网络安全
springboot使用Pivotal Greenplum JDBC如何进行配置
【5月更文挑战第23天】springboot使用Pivotal Greenplum JDBC如何进行配置
201 6