MP:使用步骤、分页、queryWrapper
创始人
2025-06-01 20:55:20
0

Mybatis-Plus

官网:

MyBatis-Plus (baomidou.com)

1. 意义

mybatis-plus是一个插件,它不能单独使用,必须配合mybatis使用,作用是简化mybatis操作,通过使用MP提供的方法,自动生成SQL语句进行CRUD

2. 使用步骤

  • 使用MP进行CRUD

  1. 坐标

  2. 通过新增注解(MyBatisPlus)标注 实体与表字段的映射关系

@TableName(value = "student")

@TableField(value = "id") @TableId(type = IdType.AUTO)

@TableLogic(value = "0",delval = "1")逻辑删除时用的字段

  1. 继承BaseMapper(DAO),IService/ServiceImpl(Service),使用该类的方法

  2. 测试类使用MyBatisSqlSessionFactoryBuilder

  3. 调用对应的方法


逻辑删除

  • 解释

本质是修改操作,修改数据库中的状态字段,规定是否可见

物理删除:业务数据从数据库中丢弃,执行的是delete操作

  • 逻辑删除:为数据设置是否可用状态字段,删除时设置状态字段为不可用状态,

  • 数据保留在数据库中,执行的是update操作

  • 步骤

  1. 步骤1:修改数据库表添加deleted列,比如0代表正常,1代表删除,可以在添加列的同时设置其默认值为0正常。

  2. 步骤2:添加注解

  • @TableLogic(value="0",delval="1")

  • private Integer deleted;

  • value为正常数据的值,delval为删除数据的值


3.分页

使用步骤

1.坐标

2.mybatis核心配置文件中配置组件

3.测试使用:Page对象定义分页规则(size/current)---->查询条件------>获取IPage对象使用selectPage()+Page与查询条件 = mapper.selectPage(page,queryWrapper);

 /****************Mybatis-Plus注解**********************/// blog.csdn.net/m0_53067943/article/details/126061704@TableName /*   作用:指定类为哪个表的实体类位置:实体类上方数据库表名为t_student,实体类名为Student@TableName(value = "t_student")*/@TableId/*作用:指定实体类的属性为主键位置:属性上方属性:​value:主键字段名type:主键策略,有以下几种*/@TableField/*作用:在属性和列名不同的情况下,指定映射关系位置:非主键属性上方属性:value:非主键字段名*/@TableLogic/*作用:在使用逻辑删除的时候使用该注解位置:逻辑删除属性上方逻辑删除是指不会在数据库进行物理删除数据,而是通过一个变量代表它被删除。*/@Version/*作用:在使用 MyBatis-Plus 乐观锁插件时使用位置:属性上方乐观锁:乐观锁在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果冲突,则返回给用户异常信息,让用户决定如何去做*/

乐观锁

在修改数据的时候,我们先查一下数据库的version的值,然后进行各种操作,

在提交数据前,再从数据库中查找当前version的值是否和自己先前查到的version值是否相等,

如果不相等,就回滚,如果相等,就提交事务,并将version的值 + 1

使用步骤

  1. 在表中添加version字段

  2. 修改实体

 @Datapublic class User{private String name;@Versionprivate Integer version;}
  1. 添加乐观锁插件配置

 @Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();//乐观锁插件interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());return interceptor;}​

这样就配置好了乐观锁

mp实现分页,自带的分页插件,而mybatis是第三方的插件

步骤

1.配置类

 

2.分页操作

 

4. wrapper

1.类图

 

2.作用

 

===方法

eq:等于,参数一个条件

allEq:全等于,参数是一个map集合,可以一次匹配多个条件,

ne:不等于

gt:大于,ge:大于等于,lt:小于,le:小于等于

between:在值1和值2之间,notBetween:不在值1和值2之间

like:’%值%’,notLike:’%值%’,likeLeft:’%值’,likeRight:‘值%’

isNull:字段 IS NULL,isNotNull:字段 IS NOT NULL

in:字段 IN (v0, v1, …),notIn:字段 NOT IN (value.get(0), value.get(1), …)

inSql:字段 IN ( sql语句 ),notInSql:字段 NOT IN ( sql语句 )

 

or:拼接 OR,

and 嵌套

注意事项: 主动调用or表示紧接着下一个方法不是用and连接!(不调用or则默认为使用and连接)

exists:拼接 EXISTS ( sql语句 ),notExists:拼接 NOT EXISTS ( sql语句 )

        

 

orderBy:指定是否排序,升序还是降序

orderByAsc:排序:ORDER BY 字段, … ASC,orderByDesc:排序:ORDER BY 字段, … DESC

相关内容

热门资讯

“新政策”彰显中国市场开放性 近日,在拖轮助力下,载着上万个集装箱的“中远海运杜鹃”轮缓缓驶进天津港。得益于天津港中远海运美东航线...
雅博光伏E周刊:“两办:202... 01E点聚焦 两办定目标:碳排放权、用水权交易制度2027年基本完善。 据新华社5月29日消息,中...
为孤独症人群提供全生命周期服务... 为孤独症人群提供全生命周期服务需体系化法律保障 □ 本报记者 文丽娟 周斌 陈磊 孤独症谱系障碍(...
青海省总就安全生产发出劳动法律... 原标题:青海省总就安全生产发出劳动法律监督提示函(引题) 严禁强令职工冒险作业(主题) 中工网讯 (...
普惠托育服务咋收费,我省发布最... 近日,山西晚报·山河+记者从省发改委获悉:我省发布完善普惠托育服务收费新政策,明确了涵盖公办托育机构...
生活垃圾管理条例实施细则印发 ... 近日,市政府办公室正式印发《昆明市生活垃圾管理条例实施细则》(以下简称《细则》),昆明将开展二手商品...
四维图新:正式发布《市值管理制... 金融界6月3日消息,有投资者在互动平台向四维图新提问:董秘,您好!公司股价近期出现底部放量上涨,是否...
云南省重点高原湖泊入湖河道保护... 云南省人民代表大会常务委员会公告 〔十四届〕 第四十四号 《云南省重点高原湖泊入湖河道保护条例》已由...
英国商界人士:美关税政策成跨国... 近日,多名英国商界人士表示,美国关税政策加剧全球经济不确定性,成为跨国企业运营中的“关键障碍”。英国...
苹果对欧盟要求开放生态系统的指... 苹果已对欧盟要求其向Meta、谷歌母公司Alphabet等竞争对手开放封闭生态系统的命令提出法律挑战...