MyBatis-Plus(簡(jiǎn)稱 MP)是一個(gè)MyBatis的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開發(fā)、提高效率而生。
依賴
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
service
//----接口---
public interface AccountService extends IService<Account> {
}
//----實(shí)現(xiàn)類----
@Service
public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> implements AccountService {
}
mapper繼承BaseMapper(dao)
@Mapper
public interface AccountMapper extends BaseMapper<Account> {
}
分頁(yè)攔截器
/**分頁(yè)攔截器**/
@Configuration
public class MybatisConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
1.mybatis-plus自動(dòng)生成id:@TableId()
2.mybatis-plus自動(dòng)填充策略:@TableField()
@Data
public class User {
//@TableId(type = IdType.ID_WORKER) //mp自帶策略逛拱,生成19位值,數(shù)字類型使用這種策略台猴,比如long
//@TableId(type = IdType.ID_WORKER_STR) //mp自帶策略朽合,生成19位值,字符串類型使用這種策略
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;
@Version
@TableField(fill = FieldFill.INSERT)
private Integer version;
@TableLogic
private Integer deleted;
}
自動(dòng)填充需要實(shí)現(xiàn)MetaObjectHandler接口
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
//使用mp實(shí)現(xiàn)添加操作卿吐,這個(gè)方法執(zhí)行
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
this.setFieldValByName("version",1,metaObject);
}
//使用mp實(shí)現(xiàn)修改操作旁舰,這個(gè)方法執(zhí)行
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}