1,建项目
2,导pom
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- mybatis-plus-generator -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
3,新建配置类
/**
* MyBatisPlus配置类
* Created by xybian on 2023/2/7.
*/
@Configuration
public class MybatisPlusConfig {
/**
* 分页插件
* @return
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
4,添加数据源配置
spring:
datasource:
druid:
url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password: 12345
driver-class-name: com.mysql.cj.jdbc.Driver
#mybatis plus 设置
mybatis-plus:
mapper-locations: classpath:/mybatis/*Mapper.xml
global-config:
db-config:
id-type: auto
configuration:
auto-mapping-behavior: partial
map-underscore-to-camel-case: true
5,新建代码生成器配置
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.keywords.MySqlKeyWordsHandler;
import java.util.Scanner;
/**
* MyBatisPlus代码生成器
* Created by macro on 2020/8/20.
*/
public class MyBatisPlusGenerator {
/**
* <p>
* 读取控制台内容
* </p>
*/
public static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("请输入" + tip + ":");
System.out.println(help.toString());
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotEmpty(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
}
public static void main(String[] args) {
//获取程序当前路径
String projectPath = System.getProperty("user.dir");
// String projectPath = "D:\java测试目录";
// 数据源配置
String dbUrl = "jdbc:mysql://localhost:3306/mall_tiny?characterEncoding=UTF-8&useUnicode=true&useSSL=false";
DataSourceConfig.Builder dataSourceConfig = new DataSourceConfig.Builder(dbUrl,"root","12345")
.dbQuery(new MySqlQuery())
.typeConvert(new MySqlTypeConvert())
.keyWordsHandler(new MySqlKeyWordsHandler());
// 代码生成器
FastAutoGenerator mpg = FastAutoGenerator.create(dataSourceConfig);
mpg.globalConfig(globalBuilder -> globalBuilder.fileOverride().disableOpenDir()
.outputDir(projectPath + "/src/main/java")
.author("")
.commentDate("yyyy-MM-dd HH:mm:ss")
.dateType(DateType.TIME_PACK)
.enableSwagger());
mpg.packageConfig(packageBuilder -> packageBuilder
.parent("com.xybian.mall.tiny")
.service("services")
.serviceImpl("services.impl")
.xml("mybatis")
);
mpg.strategyConfig(strategyconfigBuilder -> strategyconfigBuilder
.enableCapitalMode()
.enableSkipView ()
.disableSqlFilter()
.addInclude(scanner("表名"))
);
//entity 生成策略
mpg.strategyConfig(strategyconfigBuilder -> strategyconfigBuilder.entityBuilder()
// .enableTableFieldAnnotation ()
.naming (NamingStrategy.underline_to_camel)
.columnNaming (NamingStrategy.underline_to_camel)
.idType(IdType.AUTO)
// .enableLombok ()
/*.logicDeleteColumnName ( "deleted ").logicDeletePropertyName ( "deleted ")
.addTableFills(new Column( "create_time" , FieldFill.INSERT))
.addTableFills(new Property( "updateTime " ,FieldFill.INSERT_UPDATE))*/
.versionColumnName ("version")
.disableSerialVersionUID()
);
//controller 生成策略
mpg.strategyConfig(
strategyconfigBuilder ->strategyconfigBuilder
.controllerBuilder()
.enableRestStyle()
.enableHyphenStyle()
);
//service 生成策略
mpg.strategyConfig(
strategyconfigBuilder -> strategyconfigBuilder
.serviceBuilder()
.formatServiceFileName ("%sService")
.formatServiceImplFileName ("%sServiceImpl"));
//mapper 生成策略
mpg.strategyConfig (
strategyconfigBuilder ->strategyconfigBuilder.mapperBuilder()
.formatMapperFileName ("%sMapper")
.formatXmlFileName ( "%sMapper" )
.enableBaseResultMap());
mpg.execute();
}
}
6,启动代码生成器,自动生成代码
7,在测试类中,进行测试
@Autowired
private UmsAdminService umsAdminService;
@Test
void contextLoads() {
for (UmsAdmin umsAdmin : umsAdminService.list()) {
System.out.println(umsAdmin);
}
}
8,结果
注: 若报,类找不到异常,就在启动类中添加MapperScan。