Spring JDBC模板的使用

本文详细介绍了Spring框架中JDBC模板的使用,包括配置、数据操作及事务管理。重点讲解了如何利用Spring JDBC模板简化数据库操作,以及Spring事务管理的API、传播行为和声明式事务的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3、Spring JDBC模板的使用


目录

3、Spring JDBC模板的使用

3.1 Spring JDBC模板介绍

3.2 Spring JDBC模板的入门

3.2.1 引入Spring 的JDBC模板的Jar包

3.2.2 创建数据库和表

3.2.3 使用JDBC的模板保存数据

3.3 将连接池和模板交给Spring管理

3.3.1 引入Spring的配置文件

3.3.2 使用开源的数据库连接池

3.3.2.1 DBCP的使用

3.3.2.2 C3P0的使用

3.3.3 在Spring的配置文件中引入属性文件

3.4 使用JDBC模板完成CRUD操作

3.5 Spring的事务管理

3.5.1 Spring的事务管理的API

3.5.2 Spring的事务的传播行为

3.5.3 Spring事务管理入门(转账业务)

3.5.4编程式事务(需要手动编写代码)--了解

3.5.5 声明式事务管理(通过配置实现)---AOP



3.1 Spring JDBC模板介绍

Spring框架是Java SE/EE开发的一站式框架,有EE开发的每层解决方案;Spring对持久层提供了解决方案:ORM模块和JDBC模块。


3.2 Spring JDBC模板的入门

3.2.1 引入Spring 的JDBC模板的Jar包

3.2.2 创建数据库和表

3.2.3 使用JDBC的模板保存数据


3.3 将连接池和模板交给Spring管理

3.3.1 引入Spring的配置文件

         测试

 

3.3.2 使用开源的数据库连接池

3.3.2.1 DBCP的使用

引入DBCP的jar

配置DBCP连接池

 

3.3.2.2 C3P0的使用

引入C3P0的jar

配置C3P0连接池

 

3.3.3 在Spring的配置文件中引入属性文件

 使用两种方法(Bean方法、Context方法)将属性文件引入到Spring配置中

  然后在连接池中使用属性文件中的key值(格式: ${key}-----用法都一样


3.4 使用JDBC模板完成CRUD操作

保存操作

修改操作

删除操作

查询操作

     查询某个属性

     查询返回对象或集合

     数据封装


3.5 Spring的事务管理

3.5.1 Spring的事务管理的API

PlatformTransactionManager:平台事务管理器

  1. 平台事务管理器:接口,是Spring用于管理事务的真正的对象。
    1. DataSourceTransactionManager  :底层使用JDBC管理事务
    2. HibernateTransactionManager       :底层使用Hibernate管理事务

TransactionDefinition  :事务定义信息

  1. 事务定义:用于定义事务的相关的信息,隔离级别、超时信息、传播行为、是否只读

TransactionStatus:事务的状态

  1. 事务状态:用于记录在事务管理过程中,事务的状态的对象。

事务管理的API的关系:

Spring进行事务管理的时候,首先平台事务管理器根据事务定义信息进行事务的管理,在事务管理过程中,产生各种状态,将这些状态的信息记录到事务状态的对象中。

3.5.2 Spring的事务的传播行为

Spring的传播行为

  1. Spring中提供了七种事务的传播行为:

               保证多个操作在同一个事务中

  1. PROPAGATION_REQUIRED    :默认值,如果A中有事务,使用A中的事务,如果A没有,创建一个新的事务,将操作包含进来
  2. PROPAGATION_SUPPORTS    :支持事务,如果A中有事务,使用A中的事务。如果A没有事务,不使用事务。
  3. PROPAGATION_MANDATORY   :如果A中有事务,使用A中的事务。如果A没有事务,抛出异常。

 

            保证多个操作不在同一个事务中

  1. PROPAGATION_REQUIRES_NEW    :如果A中有事务,将A的事务挂起(暂停),创建新事务,只包含自身操作。如果A中没有事务,创建一个新事务,包含自身操作。
  2. PROPAGATION_NOT_SUPPORTED   :如果A中有事务,将A的事务挂起。不使用事务管理。
  3. PROPAGATION_NEVER          :如果A中有事务,报异常。

 

               嵌套式事务

  1. PROPAGATION_NESTED         :嵌套事务,如果A中有事务,按照A的事务执行,执行完成后,设置一个保存点,执行B中的操作,如果没有异常,执行通过,如果有异常,可以选择回滚到最初始位置,也可以回滚到保存点。

 

3.5.3 Spring事务管理入门(转账业务)

搭建Spring的事务管理的环境

          创建Service的接口和实现类

             创建DAO的接口和实现类

              配置Service和DAO:交给Spring管理

       在DAO中编写扣钱和加钱方法:

                      配置连接池和JDBC的模板

 

      在DAO注入Jdbc的模板:

 

3.5.4编程式事务(需要手动编写代码)--了解

第一步:配置平台事务管理器

第二步:Spring提供了事务管理的模板类

  1. 配置事务的管理的模板类

第三步:在业务层注入事务管理的模板

编写事务管理的代码

3.5.5 声明式事务管理(通过配置实现)---AOP

XML方式的声明式事务管理

  1. 第一步:引入aop的开发包
  2. 第二步:恢复转账环境
  3. 第三步:配置事务管理器

        第四步:配置增强

         第五步:AOP的配置

注解方式的声明式事务管理

  1. 第一步:引入aop的开发包
  2. 第二步:恢复转账环境
  3. 第三步:配置事务管理器

           第四步:开启注解事务

           第五步:在业务层添加注解


                                                                                           谢谢阅读                  ------知飞翀 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值