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<User> 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字段