第一種方式:數據庫設置時間更新(不建議使用)
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
User user=new User();
user.setId(1272823863285137410L);
user.setEmail("看修改時間否");
int update = userMapper.updateById(user);
if(update==1){
List<User> users = userMapper.selectList(null);
for (User user1 : users) {
System.out.println(user1);
}
}
}
第二種方法 使用mybatis-plus的@TableField 註解
我們在開發過程中,很多時候不能去修改數據庫,儘量不要使用第一種方法
先把剛纔修改的數據庫改回去。
修改我們的實體類
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
@TableId(type=IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
@TableField(fill = FieldFill.INSERT)
private Date create_time;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date update_time;
}
@TableField 註解
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface TableField {
String value() default "";
String el() default "";
boolean exist() default true;
String condition() default "";
String update() default "";
FieldStrategy strategy() default FieldStrategy.DEFAULT;
FieldFill fill() default FieldFill.DEFAULT;
boolean select() default true;
}
FieldFill是我們的填充規則
public enum FieldFill {
DEFAULT, //沒有
INSERT, //插入時
UPDATE,//修改時
INSERT_UPDATE;//插入和修改時
private FieldFill() {
}
}
編寫處理器去處理註解(3.3版本之前)
package com.example.demo.handler;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* @author
* @date 2020/06/16
* @description: description
* @version: 1.0.0
*/
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("create_time",new Date(),metaObject);
this.setFieldValByName("update_time",new Date(),metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("update_time",new Date(),metaObject);
}
}
插入測試
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
User user=new User();
user.setName("修改時間成功否");
user.setEmail("[email protected]");
user.setAge(18);
int insert = userMapper.insert(user);
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
}
修改測試
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
User user=new User();
user.setId(1272823863285137412L);
user.setAge(3);
int update = userMapper.updateById(user);
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
}