在某些应用中,可能会要求我们使用原生的 JDBC 的方式来实现与数据库的交互,而这时 Mybatis、Hibernate、JPA 等方式都不可以使用了,我们只能使用纯 JDBC 的方式来实现与数据库的交互。那么我们今天就一起来探究一下,如何在 Spring Boot 中引入 JDBC 进行数据访问。
Spring boot 提供了很多的自动配置功能,在数据库访问方面我们只需做一些简单的配置,就可以进行与数据库交互。
下面我们先引入所需要的 Maven 依赖吧。pom.xml 中的代码如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <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>
我们引入 spring-boot-starter-jdbc 后,还需要一个数据库驱动 jar 包。这里我们使用 mysql,所以引入 mysql-connector-java 即可。
完成这些以后,我们还要在 application.yml 中配置数据库访问的用户名和密码等信息。
spring: datasource: username: root password: 123456 url: jdbc:mysql://192.168.15.22:3306/xttblog driver-class-name: com.mysql.jdbc.Driver
做完这些以后,我们就可以直接使用 DataSource 对象来操作数据库的增删改查了。
package com.xttblog.springboot; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; @RunWith(SpringRunner.class) @SpringBootTest public class SpringBoot06DataJdbcApplicationTests { @Autowired DataSource dataSource; @Test public void contextLoads() throws SQLException { //org.apache.tomcat.jdbc.pool.DataSource System.out.println(dataSource.getClass()); Connection connection = dataSource.getConnection(); System.out.println(connection); connection.close(); } }
运行上面的代码,我们发现 Spring boot 默认使用的 tomcat 提供的数据库连接池。org.apache.tomcat.jdbc.pool.DataSource 是 Tomcat 提供的数据库连接池。
如果我们想变更数据库连接池,则需要在 application.yml 中配置一个 spring.datasource.type = org.apache.commons.dbcp2.BasicDataSource 或者 org.apache.commons.dbcp.BasicDataSource 也或者 com.zaxxer.hikari.HikariDataSource。这些数据库连接池都是 Spring boot 默认提供的。在 Spring Boot 的 org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration 类中有详细的加载原理。有兴趣的可以去看看对应的源代码。
根据 DataSource 获取到 Connection 后,我们就可以操作增删改查功能了。这些都是 java 的基础知识了,因此我就不在过多介绍了。需要更深入的学习 Spring Boot 的朋友,可以继续的关注我的个人博客!
: » SpringBoot + JDBC(数据访问)教程
原创文章,作者:wure,如若转载,请注明出处:https://blog.ytso.com/251770.html