springboot-数据库操作学习-JDBC(一)

简介

Spring Boot ⽀支持了了主流的 ORM 框架:MyBatis、Hibernate 和 Spring JDBC,⼏几种 ORM 在不不同的场
景下各有优势,在 Spring Boot 体系内都有对应的 Starter 包以⽅方便便集成。

Spring Boot 使⽤用 JDBC 操作数据库

JDBC(Java Data Base Connectivity,Java 数据库连接)是⼀一种⽤用于执⾏行行 SQL 语句句的 Java API,可以为多
种关系数据库提供统⼀一访问,它由⼀一组⽤用 Java 语⾔言编写的类和接⼝口组成。JDBC 提供了了⼀一种基准,据此可以
构建更更⾼高级的⼯工具和接⼝口,使数据库开发⼈人员能够编写数据库应⽤用程序
Java 程序中使⽤用 JDBC, 需要如下7步操作:

  • 加载数据库驱动
  • 建⽴立数据库连接
  • 创建数据库操作对象
  • 定义操作的 SQL 语句句
  • 执⾏行行数据库操作
  • 获取并操作结果集
  • 关闭对象,回收资源
    代码如下:
try {
// 1、加载数据库驱动
Class.forName(driver);
// 2、获取数据库连接
conn = DriverManager.getConnection(url, username, password);
// 3、获取数据库操作对象
stmt = conn.createStatement();
// 4、定义操作的 SQL 语句句
String sql = "select * from user where id = 6";
// 5、执⾏行行数据库操作
rs = stmt.executeQuery(sql);
// 6、获取并操作结果集
while (rs.next()) {
// 解析结果集
}
} catch (Exception e) {
// ⽇日志信息
} finally {
// 7、关闭资源
}

Spring Boot 针对 JDBC 的使⽤用提供了了对应的 Starter 包:spring-boot-starter-jdbc。
spring-boot-starter-jdbc 直接依赖于 HikariCP 和 spring-jdbc。
HikariCP 是 Spring Boot 2.0 默认使⽤用的数据库连接池,也是传说中最快的数据库连接池。
spring-jdbc 是 Spring 封装对 JDBC 操作的工具包.
单数据源配置:

spring.datasource.url=jdbc:mysql://localhost:3306/learn
de=true&characterEncoding=utf-8&useSSL=true
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

多数据源配置:

spring.datasource.primary.jdbc-url=jdbc:mysql://localhost:3306/learn?serverTimezon
e=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
spring.datasource.primary.username=root
spring.datasource.primary.password=123456
spring.datasource.primary.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.secondary.jdbc-url=jdbc:mysql://localhost:3306/learn1?serverTimez
one=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
spring.datasource.secondary.username=root
spring.datasource.secondary.password=123456
spring.datasource.secondary.driver-class-name=com.mysql.cj.jdbc.Driver

这里使用的是 spring.datasource.*.jdbc-url,因为默认连接池 HikariCP 读取的是 jdbc-url。
在项⽬目启动的时候读取配置⽂文件中的信息,并对 JDBC 初始化。

// 在启动的时候根据特定的前缀加载不同的数据源,根据构建好的数据源再创建不同的JDBC。
@Configuration
public class DataSourceConfig {
@Primary
@Bean(name = "primaryDataSource")
@Qualifier("primaryDataSource")
@ConfigurationProperties(prefix="spring.datasource.primary")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "secondaryDataSource")
@Qualifier("secondaryDataSource")
@ConfigurationProperties(prefix="spring.datasource.secondary")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name="primaryJdbcTemplate")
public JdbcTemplate primaryJdbcTemplate (
@Qualifier("primaryDataSource") DataSource dataSource ) {
return new JdbcTemplate(dataSource);
}
@Bean(name="secondaryJdbcTemplate")
public JdbcTemplate secondaryJdbcTemplate(
@Qualifier("secondaryDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值