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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。