Mybatis plus快速使用
引入 spring-boot-starter、spring-boot-starter-test、mybatis-plus-boot-starter、 依赖:
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.2</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependencies>
在 application.yml 配置文件中添加 H2 数据库的相关配置:
# DataSource Config
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/
username: root
password: password
设置日志等级:
logging:
level:
root: info
com.example.mybatisplus: debug
配置分页插件:
可以在配置文件中配置,也可以在主程序中配置
// 最新版
@Configuration
@MapperScan("com.example.mybatisplus.mapper.*.mapper*")
public class MybatisPlusConfig {
// 最新版
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
return interceptor;
}
}
IPage<Employee> ipage=new Page<>(第几页,每页的大小);
IPage<Employee> page = service.page(ipage);
List<Employee> records = page.getRecords();
代码生成器相关配置:
添加 代码生成器 依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
添加 模板引擎 依赖,MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,用户可以选择自己熟悉的模板引擎,如果都不满足您的要求,可以采用自定义模板引擎。
Velocity(默认):
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
自定义配置文件:
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
//获得当前项目的路径
String projectPath = System.getProperty("user.dir");
//设置生成路径
gc.setOutputDir(projectPath + "/src/main/java");
//设置作者
gc.setAuthor("Durant");
//代码生成后是不是要打开所在文件夹
gc.setOpen(false);
// gc.setSwagger2(true); 实体属性 Swagger2 注解
//设置同文件的覆盖
gc.setFileOverride(true);
//设置实体类的名字 %s表示表名
gc.setEntityName("%s");
gc.setMapperName("%sMapper");
gc.setXmlName("%sMapper");
gc.setServiceName("%sService");
gc.setServiceImplName("%sServiceImpl");
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/mybatis?useUnicode=true&useSSL=false&characterEncoding=utf8");
// dsc.setSchemaName("public");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName("user");
//包名
pc.setParent("com.example.mybatisplus");
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
//表名的生成策略:下划线转驼峰
strategy.setNaming(NamingStrategy.underline_to_camel);
//列名的生成策略:下划线转驼峰
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");
// 设置lombok
strategy.setEntityLombokModel(true);
//controller上是否设置成@RestController
strategy.setRestControllerStyle(true);
// 公共父类
// strategy.setSuperControllerClass("你自己的父类控制器,没有就不用设置!");
//设置需要生成的表名,多个用逗号分开
strategy.setInclude("user");
//如果要按前缀模糊生成表
// strategy.setLikeTable(new LikeTable("tbl_"));
//驼峰转连接符
// strategy.setControllerMappingHyphenStyle(true);
//设置表替换前缀
// strategy.setTablePrefix("tbl_");
mpg.setStrategy(strategy);
mpg.execute();