博主信息
博文 41
粉丝 0
评论 0
访问量 40793
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
24、【转载】Spring Boot JDBC访问数据库
自由之上
原创
745人浏览过

对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 都默认采用整合 Spring Data 的方式进行统一处理,通过大量自动配置,来简化我们对数据访问层的操作,我们只需要进行简单的设置即可实现对数据层的访问。本节,我们将学习如何在 Spring Boot 中使用 JDBC 进行数据访问。

1、导入 JDBC 场景启动器

Spring Boot 将日常企业应用研发中的各种场景都抽取出来,做成一个个的场景启动器(Starter),场景启动器中整合了该场景下各种可能用到的依赖,让用户摆脱了处理各种依赖和配置的困扰。

想要在 Spring Boot 中使用 JDBC 进行数据访问,第一步就是要在 pom.xml 中导入 JDBC 场景启动器:spring-boot-starter-data-jdbc,代码如下。

  1. <!--导入JDBC的场景启动器-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-data-jdbc</artifactId>
  5. </dependency>

查看 spring-boot-starter-data-jdbc 的依赖树,可以看到,该场景启动器默认引入了一个数据源:HikariCP,如下图所示。

图1:默认数据源

2、导入数据库驱动

JDBC 的场景启动器中并没有导入数据库驱动,我们需要根据自身的需求引入所需的数据库驱动。
例如,访问 MySQL 数据库时,需要导入 MySQL 的数据库驱动:mysql-connector-java,示例代码如下。

  1. <!--导入数据库驱动-->
  2. <dependency>
  3. <groupId>mysql</groupId>
  4. <artifactId>mysql-connector-java</artifactId>
  5. <scope>runtime</scope>
  6. </dependency>

Spring Boot 默认为数据库驱动程序做了版本仲裁,所以我们在导入数据库驱动时,可以不再声明版本。需要注意的是,数据库驱动的版本必须与数据库的版本相对应。

3、配置数据源

在导入了 JDBC 场景启动器和数据库驱动后,接下来我们就可以在配置文件(application.properties/yml)中配置数据源了,示例代码(application.yml)如下。

  1. #数据源连接信息
  2. spring:
  3. datasource:
  4. username: root
  5. password: root
  6. url: jdbc:mysql://127.0.0.1:3306/bianchengbang_jdbc
  7. driver-class-name: com.mysql.cj.jdbc.Driver

注意:此处了解即可,下一节将具体介绍 Spring Boot 的数据源配置及其原理。

4、测试

Spring Boot 提供了一个名为 JdbcTemplate 的轻量级数据访问工具,它是对 JDBC 的封装。
Spring Boot 对 JdbcTemplate 提供了默认自动配置,我们可以直接使用 @Autowired 或构造函数将它注入到 bean 中使用。

下面,我们通过 JdbcTemplate 来实现对数据库的访问,代码如下。

  1. package net.biancheng.www;
  2. import org.junit.jupiter.api.Test;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.boot.test.context.SpringBootTest;
  5. import org.springframework.jdbc.core.JdbcTemplate;
  6. import javax.sql.DataSource;
  7. import java.sql.SQLException;
  8. @SpringBootTest
  9. class SpringBootJdbcApplicationTests {
  10. //数据源组件
  11. @Autowired
  12. DataSource dataSource;
  13. //用于访问数据库的组件
  14. @Autowired
  15. JdbcTemplate jdbcTemplate;
  16. @Test
  17. void contextLoads() throws SQLException {
  18. System.out.println("默认数据源为:" + dataSource.getClass());
  19. System.out.println("数据库连接实例:" + dataSource.getConnection());
  20. //访问数据库
  21. Integer i = jdbcTemplate.queryForObject("SELECT count(*) from `user`", Integer.class);
  22. System.out.println("user 表共有" + i + "条数据。");
  23. }
  24. }

运行该测试代码,结果如下。

  1. 默认数据源为:class com.zaxxer.hikari.HikariDataSource
  2. 数据库连接实例:HikariProxyConnection@659763564 wrapping com.mysql.cj.jdbc.ConnectionImpl@59edb4f5
  3. user 表共有1条数据。

通过以上运行结果可以看出,Spring Boot 默认使用 HikariCP 作为其数据源,对数据库的访问。

加入
QQ群:722461036
微信群:
一起督促、学习、练习、温习、复习 ~ ~ ~

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学