SpringBootJDBC访问数据库

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

导入JDBC场景启动器

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

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

<!--导入JDBC的场景启动器-->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>12345复制代码类型:[java]

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

导入数据库驱动

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

<!--导入数据库驱动-->
<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <scope>runtime</scope>
</dependency>123456复制代码类型:[java]

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

配置数据源

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

#数据源连接信息
spring:
  datasource:
 username: root
 password: root
 url: jdbc:mysql://127.0.0.1:3306kaikeba_jdbc
 driver-class-name: com.mysql.cj.jdbc.Driver1234567复制代码类型:[java]

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

测试

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

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

package net.kaikeba.www;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
import java.sql.SQLException;
@SpringBootTest
class SpringBootJdbcApplicationTests {
 //数据源组件
 @Autowired
 DataSource dataSource;
 //用于访问数据库的组件
 @Autowired
 JdbcTemplate jdbcTemplate;
 @Test
 void contextLoads() throws SQLException {
  System.out.println("默认数据源为:" + dataSource.getClass());
  System.out.println("数据库连接实例:" + dataSource.getConnection());
  //访问数据库
  Integer i = jdbcTemplate.queryForObject("SELECT count(*) from `user`", Integer.class);
  System.out.println("user 表中共有" + i + "条数据。");
 }
}123456789101112131415161718192021222324复制代码类型:[html]

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

默认数据源为:class com.zaxxer.hikari.HikariDataSource数据库连接实例:HikariProxyConnection@659763564 wrapping com.mysql.cj.jdbc.ConnectionImpl@59edb4f5user 表中共有1条数据。123复制代码类型:[java]

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

(0)

相关推荐

  • 手摸手教你你用数据库中间件Mycat SpringBoot完成分库分表

    优质文章,第一时间送达 关注公众号后台回复pay或mall获取实战项目资料+视频 作者:叩丁狼教育 蓝雄威 https://www.jianshu.com/p/f81422b1c915 一.背景 随着 ...

  • JDBC

    今天对JDBC的内容又进行了一下复习,并学了一些新的知识如数据库连接池,Spring JDBC等. 主要内容 1. JDBC基本概念2. 快速入门3. 对JDBC中各个接口和类详解 4. 数据库连接池 ...

  • JDBC使用+数据库连接池+springJDBC

    一.JDBC基本概念和下载 JDBC(Java DataBase Connectivity),通俗来讲就是用java语言操作数据库 本质 sun公司定义的一套操作所有关系型数据库的规则,即接口. 各个 ...

  • 使用SpringBoot搭建Web项目

    序言 从简入深的使用SpringBoot搭建一个Web项目,同时也包括一些小的问题.第一篇博文是以较为简单的方式完成一个可以连接数据库的Springboot web程序.之前自己学习的时候看网上的教程 ...

  • Python使用pyodbc访问数据库操作方法详解

    本文实例讲述了Python使用pyodbc访问数据库操作方法. 数据库连接 数据库连接网上大致有两种方法,一种是使用pyodbc,另一种是使用win32com.client,测试了很多遍,最终只有py ...

  • Python学习笔记——ADO访问数据库

    Connection Object连接对象 连接对象经常用于管理一个数据源连接,你可以通过指定数据库驱动名.数据库服务器地址.用户名.密码及其它的参数告诉它如何去连接一个数据库.所有其它的ADO对象都 ...

  • 零信任安全架构:远不止在家访问数据库的便利

    疫情防控期间,师生暂时不能返校,传统的教学科研办公模式不再适应.为了能够有效利用学校提供的科研资源,很多师生不得不通过VPN设备来访问校内网络或者认证身份.期间,中国教育与科研计算机网的CARSI认证 ...

  • .netcore实现一个读写分离的数据库访问中间件

    在实际业务系统中,当单个数据库不能承载负载压力的时候,一般我们采用数据库读写分离的方式来分担数据库负载.主库承担写以及事务操作,从库承担读操作. 为了支持多种数据库我们先定义一个数据类型字典.key为 ...

  • Molecular Plant | 20000个公共拟南芥RNA-Seq的综合在线数据库(超实用、免费、可访问)

    编译:阿菲,编辑:夏甘草.江舜尧. 原创微文,欢迎转发转载. 导读 在过去的十年里,由于测序成本的持续下降和最新的易于使用的文库构建工具的开发,RNA测序(RNA-seq)已经超过微阵列成为基因表达谱 ...

  • 07 | 数据访问:如何使用 JdbcTemplate 访问关系型数据库?

    06 讲我们详细介绍了 JDBC 规范的相关内容,JDBC 规范是 Java 领域中使用最广泛的数据访问标准,目前市面上主流的数据访问框架都是构建在 JDBC 规范之上. 因为 JDBC 是偏底层的操 ...

  • 06 | 基础规范:如何理解 JDBC 关系型数据库访问规范?

    从今天开始,我们将进入 Spring Boot 另一个核心技术体系的讨论,即数据访问技术体系.无论是互联网应用还是传统软件,对于任何一个系统而言,数据的存储和访问都是不可缺少的. 数据访问层的构建可能 ...

  • 对Python通过pypyodbc访问Access数据库的方法详解

    看书上通过ODBC访问数据库的案例,想实践一下在Python 3.6.1中实现access2003数据库的链接,但是在导入odbc模块的时候出现了问题,后来查了一些资料就尝试着使用pypyodbc,最 ...

  • MySQL数据库允许用任意ip连接访问

    我们先通过终端进入到mysql,我本机的mysql密码是root.执行命令 mysql -uroot -proot 进入到mysql.然后选择mysql这个数据库. use mysql 然后找到use ...