首页 > 其他分享 >mybatis乐观锁批量更新和单个更新

mybatis乐观锁批量更新和单个更新

时间:2024-04-28 18:44:05浏览次数:23  
标签:批量 get Random list 更新 new mybatis import com

拦截器

package com.esolution.xreport.config;


import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusLockConfig {
	/**
	 * 乐观锁拦截器
	 */
	@Bean
	public MybatisPlusInterceptor mybatisPlusInterceptor() {
		MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
		OptimisticLockerInnerInterceptor optimisticLockInnerInterceptor = new OptimisticLockerInnerInterceptor();
		interceptor.addInnerInterceptor(optimisticLockInnerInterceptor);
		return interceptor;
	}
}

  实体类

package com.esolution.xreport.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;

/**
 *测试乐观锁
 *
 * @author
 * @since
 */
@Data
@TableName("biz_test_mybatisplus")
@EqualsAndHashCode(callSuper = true)
public class TestMybatisplus extends BaseEntity {
	private static final long serialVersionUID = 1L;
	@TableId(type=IdType.AUTO)
	private Long id;
	@ApiModelProperty(value = "版本号")
	@Version
	private Integer version;
	@ApiModelProperty(value = "用户名")
	private String userName;
	@ApiModelProperty(value = "用户号")
	private String userCode;
	@ApiModelProperty(value = "地址")
	private String address;
	@ApiModelProperty(value = "部门")
	private Integer createDept;


}

  业务类

package com.esolution.xreport.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.esolution.xreport.entity.TestMybatisplus;
import com.esolution.xreport.mapper.*;
import com.esolution.xreport.service.ITestMybatisplusService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
 *测试
 * @author
 * @date
 */
@Service
@RequiredArgsConstructor
@Slf4j
public class TestMybatisplusImpl extends BaseServiceImpl<TestMybatisplusMapper, TestMybatisplus> implements ITestMybatisplusService {

	@Override
	public void testMyBatisPlusAdd() {
		List<TestMybatisplus> list = new ArrayList<>();
		for(int i=0;i<5;i++){
			TestMybatisplus bean = new TestMybatisplus();
			bean.setAddress("北京");
			bean.setUserName("张三"+i);
			bean.setUserCode("mm"+i);
			bean.setVersion(1);
			list.add(bean);
		}
		saveBatch(list);
	}
       //批量更新

	@Override
	public void testMyBatisPlusUpdate() {
		List<TestMybatisplus> list = list();
		log.info("list==="+list);
		list.forEach(e ->{
			Random random = new Random();
			int randomNumber = random.nextInt(10) + 1;
			String name= e.getUserName()+randomNumber;
			e.setUserName(name);
		});
		//this.updateBatchById(list);
		System.out.println("list.get(0)==="+list.get(1));
		this.updateBatchById(list);
	}
       //单个更新
	@Override
	public void testMyBatisPlusUpdateOne() {
		List<TestMybatisplus> list = list();
		log.info("list==="+list);
		list.forEach(e ->{
			Random random = new Random();
			int randomNumber = random.nextInt(10) + 1;
			String name= e.getUserName()+randomNumber;
			e.setUserName(name);
		});
		//this.updateBatchById(list);
		System.out.println("list.get(0)==="+list.get(1));
		this.updateById(list.get(0));
	}

	@Override
	public void testUpdate() {
		List<TestMybatisplus> list = list();
		TestMybatisplus ben = list.get(0);
		LambdaUpdateWrapper<TestMybatisplus> wrapper = new LambdaUpdateWrapper<>();
		Random random = new Random();
		int randomNumber = random.nextInt(10) + 1;
		String name= ben.getUserName()+randomNumber;

		wrapper.eq(TestMybatisplus::getUserCode,"mm0");
		wrapper.set(TestMybatisplus::getUserName,name);
		wrapper.eq(TestMybatisplus::getVersion,list.get(0).getVersion());
		update(wrapper);
	}
}

  

标签:批量,get,Random,list,更新,new,mybatis,import,com
From: https://www.cnblogs.com/xianz666/p/18164310

相关文章

  • HTML一键打包APK工具一机一码功能更新 - 增强安全性
    HTML一键打包APK工具在上一个版本更新的时候,添加了一机一码功能,该功能上线以来,受到许多用户的喜爱。它可以方便的让APK只能在已经授权的手机上使用,能有效地保护APK作品,防止一些没有授权的传播。如果想要向用户收费或者限制使用范围,这个功能就非常适合。之前版本中,在HTML一键打包A......
  • 2023蓝帽杯初赛取证wp(待更新)
    2023蓝帽杯初赛取证wp(待更新)最近取证比赛好多,被迫学习(bushi初次接触取证,火眼都不会用,笑死。VC密码:Hpp^V@FQ6bdWYKMjX=gUPG#hHxw!j@M9目前只写了计算机取证部分。【计算机取证】请给出计算机镜像pc.e01的SHA-1值?[答案格式:大小写均可]23F861B2E9C5CE9135AFC520CBD849677522F5......
  • HydroOJ 从入门到入土(15)批量修改题目标签(tag)
    选择还是分支?这是一个problem。好消息:搞到了一批题目!坏消息:题目没有标签好消息:导入的题目有标签!坏消息:题目标签和自己的不一样好消息:标签全部手动改完了!坏消息:还是觉得第一版好一、需求虽然理论上应该是导入之前就把标签全部调整好再导入,但实际上,导入之前调整标签并......
  • 批量修改Linux文件夹下所有文件大小写
    批量修改Linux文件夹下所有文件大小写 小写转大写:[root@localhost/]# forcpplivein*;domv$cpplive`echo$cpplive|tr [a-z][A-Z]`;done 大写转小写:[root@localhost/]# forcpplivein*;domv$cpplive`echo$cpplive|tr [A-Z][a-z]`;done 修改后......
  • 【代码更新】标准差
     【代码更新】标准差每513个点中,对前512个取其标准差,最后一个点不在计算范围内;具体的过程是,将512点的平方和均值,减去,512个点的均值的平方方差=用平方和的均值减去均值的平方得到方差1//用平方和的均值减去均值的平方得到方差23moduledownSampling(4inp......
  • DataGear 5.0.0 新特性之图表追加更新模式
    DataGear企业版1.1.0已发布!http://datagear.tech/pro/DataGear在新发布的5.0.0版本中,新增了图表追加更新模式支持,包括dgUpdateAppendMode图表选项,以及chart.updateAppendMode()函数,可以非常方便地制作具有追加更新效果的图表,比如实时曲线图、柱状图等。在5.0.0版本之前,......
  • SpringBoot中几种好用的代码生成器(基于Mybatis-plus生成entity、mapper、xml等)
    前言熟悉Spring框架的同学一定都知道MVC开发模式吧,控制器(Controller)、业务类(Service)、持久层(Repository)、数据库映射(Mapper)、各种DO类构成了我们服务端的代码。初学的时候,觉得新鲜手写这些东西不觉得有啥,但是写久了就会觉得很烦。好不容易在数据库中写完了一遍字段,在Java代码又要......
  • VS和jetbrains比较容易忘记的几个快捷键(更新至20230428)
    //PS:这几个是我经常忘记的,记录一下,//         暂时只记录用到的,其他的用到后再去补充添加,后面会陆续补充。 VS2022Ctrl+T :在所有代码里面搜索的快捷键,(不是Ctrl+Q)快速搜索并定位文件名称的快捷:在当前文件快速搜索函数名称的快捷键: JetBrains在所有......
  • Mybatis入门——基础操作
    介绍什么是Mybatis?Mybatis是一款优秀的持久层框架,用于简化JDBC的开发。Mybatis本是Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了goolecode,并且改名为Mybatis,2013年11月迁移到GitHub。官网:https://mybatis.org/mybatis-3/zh_CN/index.html快速入门使用......
  • MyBatis-Plus QueryWrapper常用方法
    1queryWrapper.lt();//小于2queryWrapper.le();//小于等于3queryWrapper.gt();//大于4queryWrapper.ge();//大于等于5queryWrapper.eq();......