1、创建实体类,对需要进行自动填充的属性用注解进行标注
package com.lls.mybatisplus.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.util.Date;
@Data
public class User {
@TableId(type = IdType.AUTO)//标注这是表的主键且注解策略为自动增长
private Integer userid;
private String username;
private String password;
@TableField(fill = FieldFill.INSERT)//标注插入数据时此属性会自动填充
private Date createdate;
@TableField(fill = FieldFill.INSERT_UPDATE)//标注更新数据时此属性会自动填充
private Date updatedate;
}
2、自定义的MetaObjectHandler(实现:更新或者插入时具体的操作)
package com.lls.mybatisplus.intercepter;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
public class CustomMetaInter implements MetaObjectHandler {
/*插入时自动填充时间*/
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createdate",new Date(),metaObject);
this.setFieldValByName("updatedate",new Date(),metaObject);
}
/*更新时自动填充时间*/
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updatedate",new Date(),metaObject);
}
}
3、然后进行测试
package com.lls.mybatisplus;
import com.lls.mybatisplus.mappers.UserMapper;
import com.lls.mybatisplus.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class MybatisPlusApplicationTests {
@Autowired
UserMapper userMapper;
@Test
void contextLoads() {
User user = new User();
user.setUserid(10);
user.setUsername("zst");
user.setPassword("5201314");
int insert = userMapper.updateById(user);
System.out.println(insert);
}
}