This theme is f|

guangzan

园龄:6年5个月粉丝:676关注:333

📂Java
🔖Spring
2020-10-11 00:23阅读: 197评论: 0推荐: 0

第4章 Spring 的数据库开发

学习目标

  1. JdbcTemplate 类中几个常用方法的使用
  2. Spring JDBC 的配置
  3. 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) 方法执行建表的案例实现步骤如下:

  1. 在 MySQL 中创建一个名为 spring 的数据库;
  2. 创建 Web 项目,导入相关 Jar 包;
  3. 创建 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>
  1. 创建测试类,测试程序。
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 单元测试的使用:

  1. 在方法上添加单元测试的注解 @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)");
}
  1. 引入支持 JUnit 的 Jar 包

  1. 使用 JUnit Test 进行单元测试

  1. 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 框架的强大。

练习

  1. 请简述 Spring JDBC 是如何进行配置的。
  2. 请简述 Spring JdbcTemplate 类中几个常用方法的作用。

本文作者:guangzan

本文链接:https://www.cnblogs.com/guangzan/p/13795996.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   guangzan  阅读(197)  评论(0编辑  收藏  举报
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示