Generator 是 MyBatis-Plus 的代码生成器,通过 Generator 可以快速生成 Entity、Mapper、Mapper.xml、Service、Controller 等各个模块的代码,极大的提升了开发效率。
没有第二个依赖会报错:
java.lang.NoClassDefFoundError: org/apache/velocity/context/Context
<!-- mybatis-plus生成-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
<scope>compile</scope>
</dependency>
<!-- mybatis-plus生成文件依赖jar-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* <p>
* 代码生成类
* </p>
*/
public class CodeGenerator {
public static void main(String[] args) {
List<String> tables = new ArrayList<>();
// 配置要生成的表名
tables.add("rc_XXXX");
FastAutoGenerator.create("jdbc:mysql://ip:3306/数据库?useSSL=false&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=true&serverTimezone=GMT%2B8"
, "用户名", "密码")
.globalConfig(builder -> {
builder.author("dell") // 作者
.outputDir(System.getProperty("user.dir") + "\\src\\main\\java") // 输出路径(写到java目录)
.enableSwagger() // 开启swagger,记得引入依赖并添加配置文件swagger2
.commentDate("yyyy-MM-dd")
.fileOverride(); // 开启覆盖之前生成的文件
})
.packageConfig(builder -> {
builder.parent("com.rc.col")
.entity("model.entity")
.service("service")
.serviceImpl("service.impl")
.mapper("dao.mapper")
.xml("mapper")
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + "\\src\\main\\resources\\mapper"));
})
.strategyConfig(builder -> {
builder.addInclude(tables)
.addTablePrefix("XXX_")//过滤掉的文件名
.entityBuilder()
// .superClass(BaseXXXXEntity.class)//设置父类。会在生成的实体类名后:extends BaseXXXXEntity
// .addIgnoreColumns("id", "create_by", "update_by", "update_time", "create_time", "delete_flag")
.serviceBuilder()
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImpl")
.entityBuilder()
.formatFileName("%sDO")
.enableLombok() // 开启Lombok,会在实体类前添加 [@Getter] 和 [@Setter] 注解
// .logicDeleteColumnName("delete_flag") // 逻辑删除字段名
.mapperBuilder()
.superClass(BaseMapper.class)
.formatMapperFileName("%sMapper")
.enableMapperAnnotation()
.formatXmlFileName("%sMapper")// resources文件中xxMapper.xml 文件后缀
.enableBaseColumnList() // 会在mapper.xml文件生成[通用查询结果列 ]配置
.enableBaseResultMap(); //会在mapper.xml文件生成[通用查询映射结果]配置。
})
.execute();
}
}
注意包的层次结构