Insert 插入
MybatisPlusApplicationTests.java 测试类
@Test
public void testInsert() {
User user = new User();
user.setName("dddddddddddddddd");
user.setAge(3);
user.setEmail("ddddddddddddd@qq.com");
int result = userMapper.insert(user);// 帮我们自动生成id
System.out.println(result);// 受影响的行数
System.out.println(user);// 发现: id自动回填
}
结果:默认 ID_WORKER 全局唯一id (雪花算法的id)
1
User(id=1481494925083566082, name=dddddddddddddddd, age=3, email=ddddddddddddd@qq.com)
Update更新操作
@Test
public void testUpdate(){
User user = new User();
// 通过条件自动拼接动态sql
user.setId(3L);
user.setName("关注我的微信公众号");
user.setAge(33);
// 注意: updateById 但是参数是一个 对象
int i = userMapper.updateById(user);
System.out.println(i);
}
配置主键自增
=>实体类字段上 @TableId(type = IdType.AUTO)
内置源码如下:
public enum IdType {
AUTO(0), // 数据库id自增
NONE(1), // 未设置主键
INPUT(2), // 手动输入,自己写id
ID_WORKER(3), // 默认的全局唯一id 《= 默认
UUID(4), // 全局唯一id uuid
ID_WORKER_STR(5); // ID_WORKER 字符串表示法
}
自动填充数据(时间),一般用第二种方法。
第一种方法。
1.在表中新增字段 create_time,update_time
2. 设置create_time,update_time 的默认值
3.
在实体类User.java 添加代码
private Date createTime;
private Date updateTime;
用测试类 public void testUpdate() ,可查看是否填充。
第二种方法。
1.在表中新增字段 create_time,update_time
2.这里就不要设置create_time,update_time 的默认值
3.在实体类User.java 添加代码
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
private String email;
//字段添加填充内容
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
4.编写处理器来处理这个注解即可
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
private String email;
//字段添加填充内容
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}