Spring整合JDBC—声明式的事务处理

一、Spring整合JDBC步骤

  1. 导入jar包

  2. 编写数据库配置文件
    1. 也可以将数据库配置信息单独配置后引入Spring容器中
  3. 代码中使用

二、Spring框架中的JDBC模板类

  1. 在Spring框架中可以配置JDBC模板类来避免数据库操作时的代码冗余
  2. 在执行查询操作时 , 需要手动创建用来封装结果集对象的类
    1. 补充说明: 通过类的反射机制实现结果封装 , 开发效率高 , 但是执行效率低 , 手动封装结果集开发效率低 , 但是执行效率高
  3. 代码中使用
  4. 通过模板查询单个对象
  5. 使用JDBC模板操作数据库时 , 除了查询是query , 其他操作都是update
  6. 插入数据
  7. 删除数据
  8. 修改数据

三、声明式事务处理

  1. 添加约束和导入约束文件

    1. 添加约束
    2. 导入约束文件(如果电脑联网的话 , 添加约束后会自耦东下载 , 不需要导入约束文件)
  2. 在Application.xml配置文件中配置事务 , 如果id为transactionManager的话可以省略
  3. 配置事务切面类的通知
  4. 事务的传播策略:当出现事务嵌套问的时候 需要通过传播策略决定如果控制事务 。 基本上使用默认的Propagation.REQUIRED足以应对所有场景,REQUIRED指如果原来调用的地方有事务,则此方法支持事务,如果原来没有事务,则会创建一个事务
  5. 把事务配置在切面中
  6. 这种方式一般不常用 , 一般使用注解形式

声明式事务处理: 注解形式

  1. 配置文件中配置事务管理类
  2. 注解的使用(在需要的方法上加上事务的注解

四、声明式事务回滚策略

  1. 事务回滚策略

    1. Spring声明式事务默认发生运行时异常时回滚 , 发生编译时异常时不回滚 。
  2. 手动改变事务回滚策略
    1. 指定发生某个编译时异常时也回滚 , 运行时异常依然回滚
    2. 指定某个运行时异常发生异常时不会滚

五; 多表操作时的具体问题

  1. 一定要把事务添加在service层才能解决多表操作的事务问题 。

大数据WEB阶段Spring框架(三)声明式事务处理相关推荐

  1. 大数据WEB阶段Spring框架(一)IOC控制反转、DI注入依赖

    Spring-IOC.DI 零.Spring简介 Spring官网:http://projects.spring.io/spring-framework Jar包的下载地址:http://repo.s ...

  2. 大数据WEB阶段Spring框架(四)Spring-MVC

    Spring-MVC 零.目录 Spring-MVC介绍 Spring-MVC入门案例 使用注解形式简化Cotroller 配置资源解析器 三种方式获取页面传递过来得参数 获取参数时的乱码问题 日期获 ...

  3. 大数据WEB阶段Spring框架 AOP面向切面编程(二)

    Spring AOP面向切面编程(二) 一.切入点的execution表达式 execution的表达形式: execution(修饰符? 返回值类型 所在包类? 方法名(参数列表) 异常?) ?表示 ...

  4. 大数据WEB阶段Spring框架(二)简化配置的操作

    Spring简化配置的操作 零.复习 IOC控制反转, 之前是通过new创建对象 , IOC是由Spring容器创建对象 , 需要用时getBean获取 . 导入约束文件 获取对象两种方式 : 通过I ...

  5. 大数据WEB阶段Spring框架 AOP面向切面编程(一)

    Spring - AOP面向切面编程(一) 一.代理模式概述 代理的特点:(目标对象即被代理者) 实现和目标对象相同的接口 具备和目标对象的方法 代理者不仅要做目标对象的方法 , 还要做一些额外的操作 ...

  6. 大数据WEB阶段 TransientDateAccessResourceException

    大数据WEB阶段 TransientDateAccessResourceException 一 . 分析 如果数据库保存的字段有时间 , 但是没有给该字段赋值时 ,则该字段默认是0000-00-00 ...

  7. 大数据WEB阶段(九)Servlet+Request

    Servlet与Request 一.概述 Servlet 是sun公司提供的一门用于开发动态web资源的技术 按照这套规范写出来的servlet可以放置在web应用中在servlet容器中运行 . 开 ...

  8. 大数据WEB阶段 (六)MySql详解(一)

    MySql(二) 一.概述 什么是数据库 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,简而言之就是存储数据的仓库. 数据库的分类 层次式数据库.网络式数据库.关系型数据库 数 ...

  9. 大数据WEB阶段 Maven与SSM框架整合

    Maven整合SSM框架 零. 目录 Maven整合SSM 常见的问题 以及一些优化 一. Maven整合SSM 创建webapp工程 修改jdk和编译器 配置pom.xml文件 并在pom.xml文 ...

最新文章

  1. [译]Effective Kotlin系列之探索高阶函数中inline修饰符(三)
  2. vlan的基本指令_10、Vlan的基本常用命令
  3. 【Unity】Planar Shadows平面阴影的实现
  4. 【Linux】一步一步学Linux——arp命令(163)
  5. 计算机一级b和小高考,2021年小高考B是几分相关内容
  6. *【HDU - 2473】Junk-Mail Filter (并查集--删点操作)
  7. 【Tensorflow】更新后报错 numpy.core.umath
  8. C++/Qt 序列化操作
  9. Mybatis入门程序
  10. git pull的理解 以及 git conflict的解决
  11. [技术文档]Linux从入门到精通
  12. Eigen 3.3.7 MatrixVector的运算
  13. C#中英文字符串固定长度换行
  14. hdu1002——A + B Problem II
  15. Centos安装php高版本
  16. 实验四 图像复原及几何校正
  17. 计算机网络的定义以及分类
  18. Kingdom Rush 国王保卫战图文攻略
  19. 技术干货 | MindSpore AI科学计算系列(五):AI框架加速海洋数值模拟
  20. 聊聊办公室装修适合哪些风格以及装修技巧

热门文章

  1. 关于最近使用文档的几个技巧
  2. C/C++变量命名规则,个人习惯总结
  3. Principles of Reactive Programming 之Actors are Distributed (1)
  4. jquery 学习之二 属性---文本 值
  5. 前端参数无法转为后端实体内部类_Java学到什么程度才能叫精通?
  6. Java黑皮书课后题第8章:*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵
  7. Java黑皮书课后题第1章:1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果
  8. java jmi的基本思想_jmi: JMI 是 JNI 的 C++11/14封装,目的是为了简化JNI使用
  9. c/s项目记住账号密码功能
  10. 别名、浅复制与深复制