Spring-JDBC

2019-10-10 16:04:49 浏览数 (1)

Spring的JDBC模板

  1. JDBC模板
    1. 什么是JDBC模板
    2. 创建项目
    3. 测试
  2. IOP-DI改写
  3. CRUD操作
  4. 事务操作
    1. Spring的事务管理的API
    2. 各API之间的联系
    3. 事务的传播行为
    4. 事务使用

01

JDBC模板基本使用

SpringJDBC模板是什么?

Spring是EE开发的一站式的框架,有EE开发的每层的解决方案。

Spring对持久层也提供了解决方案:ORM模块和JDBC的模板。

Spring提供了很多的模板用于简化开发,有基础的JDBC模板相当于DBUtils,使用Hibernate也有简化使用Hibernate的模板

创建项目

Spring基础包

JDBC模板包及数据库驱动包

创建数据库和表

测试类使用模板

成功插入

02

使用IOC-DI

上面测试代码中有两处创建对象

将他们交给Spring来创建

使用注解

还可以将数据库信息使用属性配置文件

jdbc.properties

加载属性配置文件,再使用el表达式引用

03

CRUD操作

插入

删除

修改

查询单字段

单行记录(封装对象)

多条(封装集合)

04

事务操作

Spring的事务管理的API

1.PlatformTransactionManage

平台事务管理器 是一个接口,下面有两个实现类

DataSourceTransactionManager

底层使用JDBC管理事务

HibernateTransactionManager

底层使用Hibernate管理事务

2.TransactionDefinition

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

3.TransactionStatus

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

各API之间的联系

Spring进行事务管理的时候,首先平台事务管理器根据事务定义信息进行事务的管理,

在事务管理过程中,产生各种状态,将这些状态的信息记录到事务状态的对象中。

事务的传播行为

意思是在事务中又调用了其他方法,而方法中也包含事务,事务中包含事务

Spring中提供了了七种方式处理传播行为

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

PROPAGATION_REQUIRED

默认值,如果A中有事务,使用A中的事务,如果A没有,创建一个新的事务,将操作包含进来

PROPAGATION_SUPPORTS

支持事务,如果A中有事务,使用A中的事务。如果A没有事务,不使用事务。

PROPAGATION_MANDATORY

如果A中有事务,使用A中的事务。如果A没有事务,抛出异常。

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

PROPAGATION_REQUIRES_NEW

如果A中有事务,将A的事务挂起(暂停),创建新事务,只包含自身操作。如果A中没有事务,创建一个新事务,包含自身操作。

PROPAGATION_NOT_SUPPORTED

如果A中有事务,将A的事务挂起。不使用事务管理。

PROPAGATION_NEVER

如果A中有事务,报异常

嵌套式事务

PROPAGATION_NESTED

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

使用事务

编程式事务

配置事务管理和事务管理模板

使用

xml配置事务(aop给方法增强事务)

配置事务通知,再配置aop给transferMoney方法添加通知

注解方式

annotation-driven开启注解方式,传入事务平台管理器,在业务类上开启注解

无论哪一种首先将事务管理器交给Spring

0 人点赞