乐观锁(两个以上用户不能同时进行同一操作)

1.新建一个帮助java类,例如
package com.ibm.banking.irmp.common;

import java.io.Serializable;

import javax.persistence.MappedSuperclass;
import javax.persistence.Version;

@MappedSuperclass
public abstract class OptimisticLockSupportEntity implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 4575574127009076214L;

    public final static String CONFLICT_MESSAGE_ID = "COMMSW0005"; //自定义错误信息(当用户和另一个用户同时操作时会报错,然而提供这个错误)

    private String updateUserCode;// 最近更新人
    private long lockVersion;  //乐观锁的版本号(当用户操作时候就自动更新版本号(如1.2.3。。。)类已经封装好了自动更新版本号,无需手动更新,直接用即可)

    @Version
    public long getLockVersion() {
		return lockVersion;
	}


	public void setLockVersion(long lockVersion) {
		this.lockVersion = lockVersion;
	}

    public String getUpdateUserCode() {
        return updateUserCode;
    }



	public void setUpdateUserCode(String updateUserCode) {
        this.updateUserCode = updateUserCode;
    }

    
}

2.在对某张表操作的时候,即在那个对应的实体类中继承上面的类即可(这张表中要添加几个字段:updateUserCode,lockVersion)

3.在action中,以前是怎么用的就还是怎么用,该调用方法的调用方法,不变

4.在jsp中,要隐藏域一个参数:版本号(lockVersion),无论用户怎么操作(增删改查都必须提交版本号,这样系统会自动判断是否有人同时进行同一操作,如果是同一操作,后台action中会捕捉到异常,即OptimisticLockSupportEntity类中定义的,然后在页面中判断是否有异常,如果有异常则提示“该操作已经被锁定,请稍后刷新在试”)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值