mybatisplus tablename,

  mybatisplus tablename,

  00-1010 1.简介2。注释3。@TableLogic对CIUD的限制3.1插入)3.2查找(选择)3.3更新)3.4删除)4。@TableLogic字段类型支持描述:5。属性描述6。配置文件7中的实现。代码练习7.1代码练习过程7.2数据库代码

  00-1010大家好。今天我想和大家分享一些关于Mybatis-plus的服务层的方法。今天没有总结,因为都是API。没什么好总结的。直接看通话就行了。

  我们将介绍@TableLogic注释的用法,以及每个属性的实际意义和用法。

  

目录

@TableLogic用于逻辑删除数据库数据。

 

  注意,这个注释只适用于自动注入的sql。

  

1. 简单介绍

 

  00-1010不限。

  

2. 注解说明

@TableLogic批注会在select语句的where条件中添加一个条件,过滤掉删除的数据。

 

  而使用wrapper.entity生成的where条件会忽略该字段。

  SELECT user_id,姓名,性别,年龄,从用户中删除其中user_id=1,deleted=0

  

3. @TableLogic 对于 CIUD 的限制

@TableLogic批注将在update语句的where条件后追加一个条件,以防止更新已删除的数据。

 

  而使用wrapper.entity生成的where条件会忽略该字段。

  更新用户集deleted=1,其中id=1,deleted=0

  

3.1 插入(insert)

@TableLogic批注将delete语句改为update语句。

 

  更新用户集deleted=1,其中id=1,deleted=0

  00-1010支持所有数据类型(建议使用整数、布尔、本地日期时间)

  如果数据库字段使用datetime,则可以将逻辑未删除值和已删除值配置为字符串null,并将另一个值配置为函数来获取值,如now()

  附录:

  (1)逻辑删除是一种便于数据恢复和保护数据本身价值的方案,但实际上是删除。

  (2)如果需要经常外借,就不要用逻辑删除,而要用状态来表达。

  

3.2 查找(select)

5.1值

 

  用于指定逻辑未删除值,默认情况下为空字符串。

  5.2德尔瓦尔

  用于指定逻辑删除值,默认情况下为空字符串。

  

3.3 更新(update)

当然,您也可以不在@TableLogic注释中指定value和delval属性的值。使用全局逻辑删除配置信息,并按如下方式进行配置:

 

  # application . ymlmybatis-plus : global-config 3360 db-config 3360 #全局逻辑删除实体字段名(从3.3.0开始,配置后可以忽略@TableLogic中的配置)logic-delete-field: flag #逻辑删除值(默认为1) logic-delete-value3360 1 #逻辑未删除值(默认为0) logic-not-delete-value3360 0 0

  

3.4 删除(delete)

 

  00-1010我们在用户数据表中添加一个已删除的字段。

  如果字段值为1,则删除记录。如果字段值为0,则记录未被删除。

  1.将删除的字段添加到用户数据表中。sql如下所示:

  sh:sql;">-- 添加一个 deleted 字段,实现逻辑删除ALTER TABLE `user`ADD COLUMN `deleted` varchar(1) NULL DEFAULT 0 COMMENT 是否删除(1-删除;0-未删除);2.创建 user 表的实体类 AnnotationUser7Bean

  使用 @TableLogic 注解将 deleted 成员变量指定为逻辑删除字段

  

import com.baomidou.mybatisplus.annotation.*; @TableName(value = "user")public class AnnotationUser7Bean { @TableId(value = "user_id", type = IdType.AUTO) private int userId; @TableField("name") private String name; @TableField("sex") private String sex; @TableField("age") private Integer age; @TableLogic(value = "0", delval = "1") private String deleted; // 忽略 getter 和 setter 方法 @Override public String toString() { return "UserBean{" + "userId=" + userId + ", name=" + name +  + ", sex=" + sex +  + ", age=" + age + ", deleted=" + deleted + }; }}

上面代码中,使用 @TableLogic 注解将 deleted 成员变量指定为逻辑删除字段

 

  

@TableLogic(value = "0", delval = "1")private String deleted;

3.客户端代码,先查询用户ID为1的用户是否存在

 

  如果存在,则删除该用户信息

  然后,查询用户ID小于10的用户信息

  

package com.hxstrive.mybatis_plus.simple_mapper.annotation; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.hxstrive.mybatis_plus.mapper.AnnotationUser7Mapper;import com.hxstrive.mybatis_plus.model.AnnotationUser7Bean;import org.junit.jupiter.api.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class)@SpringBootTestclass AnnotationDemo7 { @Autowired private AnnotationUser7Mapper userMapper; @Test void contextLoads() throws Exception { // 删除用户ID为1的用户信息 AnnotationUser7Bean oldUserBean = userMapper.selectById(1); if(null != oldUserBean) { userMapper.deleteById(oldUserBean.getUserId()); } // 查询用户信息 QueryWrapper<AnnotationUser7Bean> wrapper = new QueryWrapper<>(); wrapper.lt("user_id", 10); for(AnnotationUser7Bean item : userMapper.selectList(wrapper)) { System.out.println(item); } } }

 

  

7.2 数据库代码执行说明

根据用户ID查询用户信息

 

  

Preparing: SELECT user_id,name,sex,age,deleted FROM user WHERE user_id=? AND deleted=0Parameters: 1(Integer)

根据用户ID删除用户信息

 

  sql 是一个更新语句,这是因为我们使用了逻辑删除,而不是物理删除

  

Preparing: UPDATE user SET deleted=1 WHERE user_id=? AND deleted=0Parameters: 1(Integer)

查询用户ID小于10的用户信息

 

  

Preparing: SELECT user_id,name,sex,age,deleted FROM user WHERE deleted=0 AND (user_id < ?)Parameters: 10(Integer)

以上就是详解MybatisPlus中@TableLogic注解的使用的详细内容,更多关于MybatisPlus @TableLogic注解的资料请关注盛行IT其它相关文章!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: