悲观锁 HibernateTest.java

HibernateTest.java

代码:

/**  *  */ package com.b510.examplex;

import java.util.List;

import org.hibernate.LockMode; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction;

/**  *  * @author XHW  *  * @date 2011-7-8  *  */ public class HibernateTest {

 /**   * @param args   */  public static void main(String[] args) {   HibernateTest test = new HibernateTest();   test.testLockMode();  }

 public void testLockMode() {   Session session = HibernateSessionFactoryUtil.getSessionFactory()     .openSession();   session.beginTransaction();   Query query=session.createQuery("from Guestbook gb");  //设置为“悲观锁”   悲观地认为每次读读取或修改数据库数据时,其他的事务也在并发访问相同的数据          <具有很强的排他性>   query.setLockMode("gb", LockMode.UPGRADE);   List<Guestbook> list=query.list();   session.getTransaction().commit();   for(Guestbook gb:list){    System.out.println(gb.getId());    System.out.println(gb.getName());    System.out.println(gb.getTitle());    System.out.println(gb.getEmail());   }  }

}

运行效果:

没有加“悲观锁”的效果:

sql语句:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). log4j:WARN Please initialize the log4j system properly. Hibernate:    select         guestbook0_.id as id2_,         guestbook0_.name as name2_,         guestbook0_.email as email2_,         guestbook0_.phone as phone2_,         guestbook0_.title as title2_,         guestbook0_.content as content2_,         guestbook0_.created_time as created7_2_     from         users.guestbook guestbook0_ 1 Hongten hello world! hongtenzone@foxmail.com

现在加入“悲观锁”

sql语句:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). log4j:WARN Please initialize the log4j system properly. Hibernate:     select         guestbook0_.id as id2_,         guestbook0_.name as name2_,         guestbook0_.email as email2_,         guestbook0_.phone as phone2_,         guestbook0_.title as title2_,         guestbook0_.content as content2_,         guestbook0_.created_time as created7_2_     from         users.guestbook guestbook0_ for update 1 Hongten hello world! hongtenzone@foxmail.com

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SpringBoot

springboot + jpa + redis + hibernate validator + 后台抽象

项目码云地址:https://gitee.com/DencyCheng/admin-api

29010
来自专栏Hongten

Hibernate 过滤器

通过调用Session对象的setFilter()和enableFilter()方法使用过滤器。

15020
来自专栏一个会写诗的程序员的博客

13.6 SpringBoot集成Mongodb开发问题@EnableMongoRepositories路径配置13.6 SpringBoot集成Mongodb开发问题@EnableMongoRepo

Parameter 0 of constructor in com.restfeel.controller.BlogController required a ...

16120
来自专栏Android 研究

Android跨进程通信IPC之10——Binder之Framework层Java篇

Binder在framework层,采用JNI技术来调用native(C/C++)层的binder架构,从而为上层应用程序提供服务。看过binder之前的文章,...

49020
来自专栏Ryan Miao

SpringMVC中@RequestBody引起的400异常处理,返回校验失败具体信息

问题 使用@RequestBody接收一个json数据的时候,如果传入的参数不符合条件,就会直接返回400的error page. 但究竟是为什么会400并没有...

52370
来自专栏扎心了老铁

springboot scheduled并发配置

本文介绍如何使用springboot的sheduled实现任务的定时调度,并将调度的任务实现为并发的方式。 1、定时调度配置scheduled 1)注册定时任务...

1.9K70
来自专栏林欣哲

Spring Boot 知识点速记

本文是学习2小时学会Spring Boot和Spring Boot进阶之Web进阶的SpringBoot常用知识点速记。 SpringBoot前置知识: Spr...

36570
来自专栏JadePeng的技术博客

Netty断线重连

Netty断线重连 最近使用Netty开发一个中转服务,需要一直保持与Server端的连接,网络中断后需要可以自动重连,查询官网资料,实现方案很简单,核心思想是...

51650
来自专栏蜉蝣禅修之道

Linux shell之sort命令

21630
来自专栏py+selenium

pip install xxxx报错(一大堆红色exception)【解决】

  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main

87810

扫码关注云+社区

领取腾讯云代金券