首先第一步是添加代码生成器的相关依赖,这个没什么好说的,我这里用的是下面这一套依赖
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--druid数据源依赖,springboot中没有收录-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.18</version>
</dependency>
<!--mybatis-plus起步依赖,springboot parent中没有收录,所以要加版本号-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!--代码生成器依赖,springboot parent中没有收录,所以要加版本号-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<!--代码生成器需要用到的velocity模板引擎,和下面的freemarker模板引擎是二选一的地位-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<!--代码生成器需要用到的freemarker模板引擎,里面继承了spring-boot-starter依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
下面是代码生成器的相关配置,可以拿来即用
运行代码生成器后的结果如下
更多具体且详细的配置请看官网
代码生成器|MyBatis-Plus
代码生成器配置新|MyBatis-Plus
比如说我想开启大写命名
.enableCapitalMode()
加入到策略配置,因为它是属于策略配置下的
.strategyConfig(builder -> {
builder.addInclude("tbl_book") // 设置需要生成的表名
.addTablePrefix("tbl_") // 设置过滤表前缀
.enableCapitalMode()
.entityBuilder()
.enableLombok()//开启 Lombok
.mapperBuilder()
.enableMapperAnnotation();//开启 @Mapper
})
但是值得说的一点是,我们发现,当我想把策略配置下Entity配置中的
.enableLombok()
加入到策略配置中时却发现报错
这是为什么呢,明明Entity也属于策略配置,怎么直接加入却报错了,这个问题困扰了我一个多小时。后来终于解决了,这也是我写这篇文章的正真原因。
的确是写在策略配置下的,但是又因为一整个大的策略配置下又包含了Entity,Controller,Service,Mapper四个小的分策略配置,在配置这些分策略配置时需要额外加上他们对应的Builder,例如
配置Entity下的策略要在前面先加上.entityBuilder
配置Mapper下的策略要在前面先加上.mapperBuilder
这样就不会报错了。
文章为作者独立观点,不代表股票自动交易程序化数据接口观点