业务层使用到事务操作时,使用ThreadLocal方法。
在Hibernate工具类中添加静态变量TheadLocal
private static TheadLocal session = new TheadLocal();

public static Session getTheadLocalSession() {
        Session s = (Session)session.get();
        if(s!=null) {
                s = getSession();
                session.set(s);
        }
        return s;
}

这些操作在web中应用较多。
session context 和事务边界:
用current_session_context_class属性来定义context(用sessionFactory.getCurrentSession()来获得session),其值为
1:thread:TheadLocal来管理Session实现多个操作共享一个session,避免反复获取session,并控制事务边界,此时session不能调用cloase,当commit或rollback的时候,session会自动open session in view:在生成(渲染)页面时保持session打开。
2.jta:由jta事务管理器来管理事务
(connection.release_mode;after_statement)
悲观锁由数据库来实现;乐观锁Hibernate用version和timestamp来实现。

转载于:https://blog.51cto.com/xiaosa/132331

13.业务层的事务操作相关推荐

  1. Winform开发框架里面使用事务操作的原理及介绍

    在很多情况下,事务是个很有用的东西,可以把一系列的操作组合成一个原子粒度的操作,一旦组合中某个地方出错,可以整个干净的进行滚回,不会留下脏数据:除此之外,事务还能提高批量操作的效率,如在本地SQLit ...

  2. 什么是业务逻辑层(业务层)及业务逻辑层(业务层)的功能

    转载地址:http://www.cnblogs.com/whitewolf/archive/2012/05/29/2524881.html 业务逻辑层是专门处理软件业务需求的一层,处于数据库之上,服务 ...

  3. 编写业务层和持久层事务控制代码并配置spring的ioc

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  4. 走向.NET架构设计—第四章—业务层分层架构(后篇)

    走向.NET架构设计-第四章-业务层分层架构(后篇) 前言: 在上一篇文章中,我们讨论了组织业务逻辑的模式:Transaction Script和Active Record,Domain Model. ...

  5. 面向对象——三层架构(表现层、业务层、持久层)

    ① 持久层:采用DAO模式,建立实体类和数据库表映射(ORM映射).也就是哪个类对应哪个表,哪个属性对应哪个列.持久层 的目的就是,完成对象数据和关系数据的转换. ② 业务层:采用事务脚本模式.将一个 ...

  6. Spring事务操作-事务引入

    目录 Spring事务操作-事务引入 1.模拟异常 2.测试异常 3.没有使用spring框架的时候异常该如何处理 4.使用spring框架的时候异常该如何处理 5.在spring 进行声明式事务管理 ...

  7. controller的异常处理以及service层的事务控制___controller层 trycatch不影响service层抛出的异常

    controller的异常处理以及service层的事务控制 最近写代码涉及到一些事务,上午终于把代码给理顺了,之前不太清楚在哪里做异常处理,导致代码遍地try-catch,相当难看. 还是基于con ...

  8. (转)Spring中的事务操作

    http://blog.csdn.net/yerenyuan_pku/article/details/70024364 事务的回顾 什么是事务 事务是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么 ...

  9. Java轻量级业务层框架Spring两大核心IOC和AOP原理

    IoC(Inversion of Control): IOC的基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务.容器负责将这些 ...

最新文章

  1. VS生成dll和lib库文件
  2. Android性能优化——使用 APK Analyzer 分析你的 APK
  3. 部署nginx反向代理及缓存
  4. 贫穷中透着零基础的单人制作游戏手册之三:独立游戏怎么评估Steam市场
  5. Spring5参考指南:依赖注入
  6. [CQOI2018] 解锁屏幕(状压dp)
  7. 【贪心】数据备份(P6320)
  8. 走进新华三解决方案 360°业务能力中心,读懂新华三如何助力企业数字化转型
  9. 晋中计算机专业对口大学,山西晋中计算机专业好就业吗?,计算机专业
  10. Python二级笔记(11)
  11. 简单易懂的 Raft 分布式共识算法讲义
  12. Java基础学习总结(42)——Log4j 2快速入门及Log4j 2 + Slf4j 的配置和使用
  13. 2021-2025年中国打印管理软件行业市场供需与战略研究报告
  14. WPF中DataGrid在没有数据的时候也可以显示水平滚动条
  15. iOS阶段学习第31天笔记(UINavigationBar介绍)
  16. 将ppt里的图片高分辨率保存的方法
  17. 基于PaddleOCR史上最全车牌号识别实现(二)
  18. 电容中那些独有的特性和功能,你有了解吗?
  19. 利用图神经网络进行的知识图谱补全综述
  20. 腾讯坐标系转化成百度坐标系

热门文章

  1. python具有可嵌入性_如何构建可嵌入Python
  2. 我的世界服务器换披风的网站,我的世界评测_我的世界正版披风怎么换|或_游戏手机游戏-中关村在线...
  3. lambda表达式 java求和_java 8 stream、lambda表达式对list操作分组、过滤、求和、最值、排序、去重...
  4. php批量数据提交mysql_php在mysql里批量插入数据(代码实例)
  5. 拉丁正方形 java_Leetcode 221 最大正方形 动态规划
  6. linux扩大lvm_Linux下lvm在线扩容步骤
  7. 六部工坊ros启智机器人定点导航技术_【展品抢鲜看】程天科技外骨骼机器人亮相峰会,让每个人享受机器人的服务!...
  8. 文献阅读-Pan-Cancer Analysis of lncRNA Regulation Supports Their Targeting of Cancer Genes in Each Tumor
  9. python mro c3_Python的MRO以及C3线性化算法
  10. 安卓上传文件时修改文件名称_使用mmv命令批量修改文件名称