第4章 Spring 的数据库开发
学习目标
- JdbcTemplate 类中几个常用方法的使用
- Spring JDBC 的配置
- Spring 中 JDBC 模块的作用
主要内容
- 4.1 Spring JDBC
- 4.2 Spring JdbcTemplate 的常用方法
4.1 Spring JDBC
Spring JDBC 模块有什么作用?
Spring 的 JDBC 模块负责数据库资源管理和错误处理,大大简化了开发人员对数据库的操作,使得开发人员可以从繁琐的数据库操作中解脱出来,从而将更多的精力投入到编写业务逻辑当中。
4.1.1 Spring JdbcTemplate 的解析
针对数据库的操作,Spring 框架提供了 JdbcTemplate 类,该类是 Spring 框架数据抽象层的基础。可以说,JdbcTemplate 类是 Spring JDBC 的核心类。
JdbcTemplate 类的继承结构具体如下图所示:
从 JdbcTemplate 的继承关系图可以看出,JdbcTemplate 类的直接父类是 JdbcAccessor,该类为子类提供了一些访问数据库时使用的公共属性。
- DataSource: 其主要功能是获取数据库连接,还可以引入对数据库连接的缓冲池和分布式事务的支持,它可以作为访问数据库资源的标准接口。
- SQLExceptionTranslator:该接口负责对 SQLException 进行转译工作。通过必要的设置获取 SQLExceptionTranslator 中的方法,可以使 JdbcTemplate 在需要处理 SQLException 时,委托 SQLExceptionTranslator 的实现类来完成相关的转译工作。
而 JdbcOperations 接口定义了在 JdbcTemplate 类中可以使用的操作集合,包括添加、修改、查询和删除等操作。
4.1.2 Spring JDBC 的配置
Spring JDBC 模块主要由 4 个包组成,分别是 core、dataSource、object(和 support。
包名 | 说明 |
---|---|
core(核心包) | 包含了 JDBC 的核心功能,包括 JdbcTemplate 类、 SimpleJdbclnsert 类、 SimpleJdbcCal1 类以及 NamedParameterJdbcTemplate 类 |
dataSource(数据源包) | 访问数据源的实用工具类,白有多种数据源的实现,可以在 Java EE 容器外部测试 JDBC 代码 |
object(对象包) | 以面向对象的方式访问数据库, 它允许执行查询并将返回结果作为业务对象,可以在数据袤的列和业务对象的属性之间映射查询结果 |
support(支持包) | 包含了 core 和 object 包的支持类,例如,提供异常转换功能的 SQLException 类 |
从上表可以看出,Spring 对数据库的操作都封装在了这几个包中,而想要使用 Spring JDBC,就需要对其进行配置。
<!-- 1.配置数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/spring"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<!--2.配置JDBC模板 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 注入数据源 -->
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 3.配置需要实例化的Bean -->
<bean id="xxx" class="Xxx">
<!-- 注入JDBC模板 -->
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
4.2 Spring JdbcTemplate 的常用方法
在 JdbcTemplate 核心类中,提供了大量的更新和查询数据库的方法,我们就是使用的这些方法来操作数据库的。
- execute
execute(String sql)
方法可用于执行 sql 语句 - update
update()
用于执行插入、更新和删除操作 - query
query()
用于执行数据查询操作
使用 execute(String sql)
方法执行建表的案例实现步骤如下:
- 在 MySQL 中创建一个名为 spring 的数据库;
- 创建 Web 项目,导入相关 Jar 包;
- 创建 Spring 配置文件,配置数据源和 JDBC 模板;
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost/spring" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
- 创建测试类,测试程序。
public class JdbcTemplateTest {
public static void main(String[] args) {
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("applicationContext.xml");
JdbcTemplate jdTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
jdTemplate.execute("create table account(" +
"id int primary key auto_increment," +
"username varchar(50)," +
"balance double)");
}
}
4.2.1 execute
扩展:使用 JUnit 单元测试
在软件开发过程中,需要有相应的测试工作。依据测试目的不同,可以将软件测试分为单元测试、集成测试、确认测试和系统测试等。其中单元测试在软件开发阶段是最底层的测试,它易于及时发现并解决问题。JUnit 就是一个进行单元测试的开源框架,下面以上个示例,来学习单元测试框架 JUnit4 的使用。
JUnit 单元测试的使用:
- 在方法上添加单元测试的注解
@Test
,同时修改为普通方法
@Test
public void mainTest() {
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("applicationContext.xml");
JdbcTemplate jdTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
jdTemplate.execute("create table account(" +
"id int primary key auto_increment," +
"username varchar(50)," +
"balance double)");
}
- 引入支持 JUnit 的 Jar 包
- 使用 JUnit Test 进行单元测试
- JUnit 控制台进度条显示绿色即运行成功
4.2.2 update
update()
方法可以完成插入、更新和删除数据的操作。在 JdbcTemplate 类中,提供了一系列的 update()
方法,其常用方法下表所示:
接下来,通过一个用户账户管理的案例来演示 update()方法的使用,请查看教材 4.2.2 小节。
4.2.3 query
JdbcTemplate 类中还提供了大量的 query()
方法来处理各种对数据库表的查询操作。其中,常用的几个 query()
方法如下表所示:
接下来,通过一个单个查询和查询所有的案例来演示 query()
方法的使用,请查看教材 4.2.3 小节。
4.3 本章小结
本章对 Spring 框架中,使用 JDBC 进行数据操作的知识进行了详细讲解。首先讲解了 Spring JDBC 中的核心类以及如何在 Spring 中配置 JDBC,然后通过案例讲解了 Spring JDBC 核心类JdbcTemplate中常用方法的使用。
通过本章的学习,读者能够学会如何使用 Spring 框架进行数据库开发,并能深切的体会到 Spring 框架的强大。
练习
- 请简述 Spring JDBC 是如何进行配置的。
- 请简述 Spring JdbcTemplate 类中几个常用方法的作用。
本文作者:guangzan
本文链接:https://www.cnblogs.com/guangzan/p/13795996.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步