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

相关内容

热门资讯

家装预付资金安全困局如何破解,... 家装预付资金安全困局如何破解 专家提出:建立“先验收后付款”装修资金存管制度 预交数万元甚至数十万元...
工行安康解放路支行积极开展《反... 为深入贯彻落实《国家金融监督管理总局安康监管分局办公室关于开展<反有组织犯罪法>宣传活动的通知》要求...
重庆公布育儿补贴制度实施方案 原标题:每孩每年3600元 重庆公布育儿补贴制度实施方案 11月21日,记者了解到,市卫生健康委、市...
十五运会组委会在深总结本届赛事... 深圳新闻网2025年11月22日讯(深圳报业集团记者 林炜航)11月21日,十五运会组委会在深圳市民...
中国军视网:日本妄言击沉福建舰... 本文转自【中国军视网】; 日本首相高市早苗发表涉台错误言论,公然挑战一个中国原则,甚至还有日本无知政...
重磅!东莞长安50万㎡产城发布... 在当下竞争激烈的市场环境中,中小企业如何突破成本压力,找到一片既能扎根成长又能眺望未来的理想栖息地?...
毕马威:政策、资本等多维着力 ... 由毕马威联合长三角G60科创走廊创新研究中心主办的“长三角高端装备新质领袖榜单发布仪式”于11月21...
河曲县开展驻村帮扶工作政策业务... 来源:河曲县融媒体中心 近日,我县组织开展驻村帮扶工作政策业务集中培训,进一步提升驻村帮扶干部...
羽绒服涨价与猪肉降价有关?经济... 中央气象台发布统计信息,14日至17日,我国今年下半年首轮大范围寒潮天气即将自西向东影响我国,多地降...
周勇,任上落马 11月21日,中央纪委国家监委网站发布通报: 国家能源集团乌海能源党委书记、董事长周勇涉嫌严重违纪违...