Spring-JDBC

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

本文分享自微信公众号 - IT那个小笔记(qq1839646816)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ASP.NET Core 2.2 : 二十一. 内容协商与自定义IActionResult和格式化类

    上一章的结尾留下了一个问题:同样是ObjectResult,在执行的时候又是如何被转换成string和JSON两种格式的呢?

    FlyLolo
  • Thrift不同服务类型的使用探索

    Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP...

    孟君
  • IT兄弟连 JavaWeb教程 过滤器1

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    ITXDL
  • IT兄弟连 JavaWeb教程 过滤器与监听器经典面试题

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    ITXDL
  • IT兄弟连 JavaWeb教程 文件下载技术

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    ITXDL
  • IT兄弟连 JavaWeb教程 过滤器3

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    ITXDL
  • IT兄弟连 JavaWeb教程 EL与JSTL表达式经典面试题

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    ITXDL
  • IT兄弟连 JavaWeb教程 经典案例

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    ITXDL
  • IT兄弟连 JavaWeb教程 监听器2

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    ITXDL
  • SpringBoot集成ES实现存储、查询

    spring-boot-starter-data-elasticsearch:是springboot整合es的一个快速开发包。用过JPA的朋友应该知道,spri...

    趣学程序

扫码关注云+社区

领取腾讯云代金券