草庐IT

Mybatisplus

全部标签

记 MybatisPlus 使用 saveBatch方法批量插入时雪花算法ID重复问题.

MybatisPlus使用saveBatch方法批量插入时雪花算法ID重复问题.(Java)背景:批量插入的实体ID属性使用注解@TableId(type=IdType.ASSIGN_ID)方式实现ID生成.代码中需要批量插入实体数据,使用saveBatch(List);时报数据库错误:IDKEY条目重复.解决:于是尝试使用IdWorker.getId()方法在生成实体时插入ID,然后DeBug查看ID生成情况.发现也是出现了ID重复的情况,然后观察实体属性发现一个规律,重复的ID实体其他属性值也是一致的,就有了这么一个猜测:因为实体属性相等,影响了ID的赋值,导致ID重复.于是我把属性重复的

mybatisplus查询不到数据,但是使用sql可以查询到数据

咱们先看下面这两张图第一眼看到会觉得很奇怪,为什么使用mybatisplus查询不到值,而使用sql语句就可以。这里的错误在于参数类型错误,我们给eq传递的第一个参数是字段名称,第二个参数是一个list集合(应该为一个值),所以查询不到结果,但是这里不会报错,第二个参数是一个值,而不是集合。如果使用in(),第二个参数是集合。所以当使用mybatisplus出现问题时,首先先将它的sql打印出来(打印sql配置:mybatis-plus.configuration.log-impl:org.apache.ibatis.logging.stdout.StdOutImpl),查看sql。如果sql

Mybatis-Plus之四种lambda方式LambdaQueryWrapper,QueryWrapper<实体>().lambda(),LambdaQueryChainWrapper<实体>

Mybatis-Plus之四种lambda方式lambda四种表达形式前言使用了lambda表达式可以通过方法引用的方式来使用实体字段名的操作,避免直接写数据库表字段名时的错写名字;一、LambdaQueryWrapper/***lambda条件构造器*生成的sql语句SELECTid,name,age,email,manager_id,create_timeFROMuserWHEREnameLIKE?ANDage@TestpublicvoidselectLambda(){//创建lambda条件构造器的三种方法//LambdaQueryWrapperlambda2=newLambdaQuer

Mybatis-Plus之四种lambda方式LambdaQueryWrapper,QueryWrapper<实体>().lambda(),LambdaQueryChainWrapper<实体>

Mybatis-Plus之四种lambda方式lambda四种表达形式前言使用了lambda表达式可以通过方法引用的方式来使用实体字段名的操作,避免直接写数据库表字段名时的错写名字;一、LambdaQueryWrapper/***lambda条件构造器*生成的sql语句SELECTid,name,age,email,manager_id,create_timeFROMuserWHEREnameLIKE?ANDage@TestpublicvoidselectLambda(){//创建lambda条件构造器的三种方法//LambdaQueryWrapperlambda2=newLambdaQuer

Java开发 - MybatisPlus框架初体验

目录前言MyBatisPlus什么是MyBatisPlus特性SpringBoot整合MyBatisPlus创建项目添加依赖

Java开发 - MybatisPlus框架初体验

目录前言MyBatisPlus什么是MyBatisPlus特性SpringBoot整合MyBatisPlus创建项目添加依赖

【SpringBoot+MyBatisPlus】点餐系统之登录功能、退出功能设计

文章目录前言一.登录功能前置二.登录流程设计三.退出登录功能前言结束了Springboot+MyBatisPlus也是开始了项目之旅,将从后端的角度出发来整理这个项目中重点业务功能的梳理与实现一.登录功能前置首先,我们需要在数据库中建立对应的表…基于人员登录功能,OOP的模式告诉我们要创建员工对应的实体类(Lombok自动生成getter,setter)就像这样:@DatapublicclassEmployeeimplementsSerializable{privatestaticfinallongserialVersionUID=1L;privateLongid;privateStringu

【SpringBoot+MyBatisPlus】点餐系统之登录功能、退出功能设计

文章目录前言一.登录功能前置二.登录流程设计三.退出登录功能前言结束了Springboot+MyBatisPlus也是开始了项目之旅,将从后端的角度出发来整理这个项目中重点业务功能的梳理与实现一.登录功能前置首先,我们需要在数据库中建立对应的表…基于人员登录功能,OOP的模式告诉我们要创建员工对应的实体类(Lombok自动生成getter,setter)就像这样:@DatapublicclassEmployeeimplementsSerializable{privatestaticfinallongserialVersionUID=1L;privateLongid;privateStringu

MybatisPlus如何完成字段类型转换

先来回忆下在mybatis中的resultMap作用和是什么resultMap的作用是什么在使用传统的mybatis时,我们一般都会在xml文件定义一个ResultMap对每个字段都有自己的定义都有两个类型javaType可以不显式写出来,mybatis可以根据指定的实体类推断出来jdbcType也就是对应到数据库中的字段类型mybatis完成数据库的数据到java实体类型的转换这两个类型是必不可少的。会根据javaType和jdbcType去匹配到对应的处理器完成类型转换mybatis内置了很多typeHandler在启动时注册publicTypeHandlerRegistry(Config

小心 MybatisPlus 的一个坑与面试题

本文转载自微信公众号「yes的练级攻略」,作者是Yes呀。转载本文请联系yes的练级攻略公众号。你好,我是yes。昨天测试说有个xx功能用不了,扔给我一个截图,说有报错:报错信息就是:Transactionrolledbackbecauseithasbeenmarkedasrollback-only,很好理解:事务被回滚了,因为它已经被标记了只能回滚。我一看巧了,这不就是我之前分析过的面试题吗!之前的文章我解释过:这种错一般发生在嵌套事务中,即内层事务出错,但是由于是否提交事务的操作由外层事务触发,于是乎内层事务只能做个标记,来设置当前事务只能回滚。紧接着它想抛出错误,但是由于被trycatc