MybatisPlus
添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
日志:mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
代码生成器
依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
代码:
public class CodeGenerator {
public static void main(String[] args) {
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("刘昊");
gc.setOpen(false);
gc.setServiceName("%sService");
// gc.setSwagger2(true); 实体属性 Swagger2 注解
mpg.setGlobalConfig(gc);
//配置数据源
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://cdb-nr90gp7u.cd.tencentcdb.com:10163/music?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8");
// dsc.setSchemaName("public");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("graceful");
dsc.setPassword("asd123+++");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
//包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName("model");
pc.setParent("com.climb.music");
pc.setEntity("entity");
pc.setMapper("mapper");
pc.setService("service");
pc.setServiceImpl("service.impl");
pc.setController("controller");
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
mpg.setStrategy(strategy);
mpg.execute();
}
}
自动填充(fill)
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}
枚举
public enum StatusEnum {
WORK(1, "上班"),
REST(0, "休息");
StatusEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
private Integer code;
private String msg;
}
枚举配置:mybatis-plus.type-enums-package=com.climb.music.enums
枚举实体类:
@TableField(value="status")
private StatusEnum statusEnum;
配置类分页
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
测试:
Page<Admin> page = new Page<>(1, 5);
Page<Admin> result = adminMapper.selectPage(page, null);
System.out.println(result.getTotal());
System.out.println(result.getSize());
result.getRecords().forEach(System.out::println)