mybatis-plus的@TableField与@TableLogic

package com.zjh.myabatiesplus.pojo;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.Value;

@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName("user")
public class User {
    //在mybatis中默认主键名为id 若不是id就会赋值报错 需要添加@TableId注解表示这个属性为id
    @TableId(value="",type=IdType.NONE)//value="" 是用来对应你数据库的主键名 type是用来注解自增类型设置auto是数据库设置的自增(数据可必须开启自增
    // )然后None 是mybatisplus使用的雪花算法的自增 雪花算法是Long型数据 生成的数据19位
    private Long id;
    private String name;
    private Integer age;
    private String email;
    @TableField("isDelete")//这个注解是跟数据库字段名对标的注解是用于非主键字段
    @TableLogic //这个主注解是用于数据库删除是物理删除还是逻辑删除 加了这个就是逻辑删除时改变其中的值 必须是整形
    //物理删除是真正把数据删掉逻辑删除是对字段修改为0/1 为删除状态
    private Integer isDel;
}

package com.zjh.myabatiesplus;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.zjh.myabatiesplus.mapper.UserMapper;
import com.zjh.myabatiesplus.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class MyabatiesPlusApplicationTests {

    @Autowired
    private UserMapper userMapper;
    @Test
    void contextLoads() {
//        List userList = userMapper.selectList(null);
//        userList.forEach(System.out::println);
        //mp的增加方法是新new 一个pojo对象 将数据填入pojo中并把这个对象放入增加方法中
        //mp的删除方式有3种 1是根据id删除 2是建立一个map都是StringKV k是字符v是字段值 3是输入一个list 来进行删除
        //mp的修改方法与添加类似都是new一个pojo并以id为查询对象修改设置的值
        //mp的查询方式有3种 1是根据id查询 2是建立一个map都是StringKV k是字符v是字段值 3是输入一个list 来进行查询
        User user=new User();
//        user.setName("2");
//        user.setAge(2);
//        user.setEmail("2");
//        userMapper.insert(user);
        user.setId(1520618192207089665L);
        userMapper.deleteById(user);
// 执行删除的语句会变成这样自动加上有@TableLogic的字段### SQL: UPDATE user SET isDelete=1 WHERE id=?  AND isDelete=0
//显然我们的删除会变成修改当字段为0时就是未删除状态 1为删除状态 他新插入时请为字段设置默认值为0,最好是在建表时将字段设置为0
        //不然操作会报错

    }

}
另外他的查询语句也会自动加上isDelete字段

 

你可能感兴趣的:(mybatis学习复习,java,数据库,开发语言)