mybatisplus 代码生成器分为两个版本,mybatis-plus-generator 3.5.1 以下版本和mybatis-plus-generator 3.5.1 以上版本
mybatis-plus-generator 3.5.1 以下版本使用添加依赖:
<!-- mybatisPlus 代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
编写自动代码生成类
public class MysqlGenerator {
/**
* 代码生成,示例代码
*
*/
public static void main(String[] args) {
// 全局配置
GlobalConfig config = new GlobalConfig();
config.setActiveRecord(true);//是否支持AR模式
config.setAuthor("lfh");//作者
config.setOutputDir(System.getProperty("user.dir") + "\src\main\java");//生成路径
config.setFileOverride(true);//文件覆盖
config.setIdType(IdType.AUTO);//自增策略
config.setServiceName("%sService");//设置生成的service接口的名字首字母是否有I
config.setBaseResultMap(true);
config.setBaseColumnList(true);
//2.数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL);//设置数据库类型
dsc.setUrl("jdbc:mysql://localhost:3306/springboot-test-db?useUnicode=true&useSSL=false&characterEncoding=utf8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
//3.策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true);//开启全局大写命名
strategyConfig.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
strategyConfig.setTablePrefix("tbl_");//表的前缀
strategyConfig.setInclude("tbl_user");//需要生成的表
//4.包名策略配置
PackageConfig pc = new PackageConfig();
pc.setParent("com.example.springboot")
.setMapper("mapper")
.setService("service")
.setController("controller")
.setEntity("bean")
.setXml("mapper");
//5.整合配置
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setGlobalConfig(config)
.setDataSource(dsc)
.setStrategy(strategyConfig)
.setPackageInfo(pc);
//6.执行
autoGenerator.execute();
}
}
mybatis-plus-generator 3.5.1 以上版本
添加依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
编写自动代码生成类
public class MybatisPlusGenerator {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/springboot-test-db?useUnicode=true&useSSL=false&characterEncoding=utf8";
String username = "root";
String password = "root";
//表名集合
List<String> tables = new ArrayList<>();
tables.add("tbl_user");
FastAutoGenerator.create(url, username, password)
//全局配置
.globalConfig(builder -> {
builder.fileOverride() // 开启覆盖之前生成的文件
.disableOpenDir() //禁止打开输出目录
.outputDir(System.getProperty("user.dir") + "\src\main\java") //指定输出目录
.author("lfh") //作者名
// .enableKotlin() //开启 kotlin 模式
// .enableSwagger() //开启 swagger 模式
.dateType(DateType.TIME_PACK) //时间策略
.commentDate("yyyy-MM-dd"); //注释日期
})
//包配置
.packageConfig(builder -> {
builder.parent("com.example.demo") //父包名
.entity("bean") //Entity 包名
.service("service") // Service 包名
.serviceImpl("service.impl") //Service Impl 包名
.mapper("mapper") //Mapper 包名
.xml("mapper.xml") // Mapper XML 包名
.controller("controller") //Controller 包名
.other("config") //自定义文件包名 输出自定义文件时所用到的包名
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "\src\main\resources\mapper"));//指定xml位置
})
//策略配置
.strategyConfig(builder -> {
builder.addInclude(tables)
.addTablePrefix("tbl_")//表名前缀,配置后生成的代码不会有此前缀
.serviceBuilder()
.formatServiceFileName("%sService")//服务层接口名后缀
.formatServiceImplFileName("%sServiceImpl")//服务层实现类名后缀
.entityBuilder()
.enableLombok()//实体类使用lombok,需要自己引入依赖
//.logicDeleteColumnName("status")//逻辑删除字段,使用delete方法删除数据时会将status设置为1。调用update方法时并不会将该字段放入修改字段中,而是在条件字段中
.enableTableFieldAnnotation()//加上字段注解@TableField
.controllerBuilder()
.formatFileName("%sController")//控制类名称后缀
.enableRestStyle()
.mapperBuilder()
.superClass(BaseMapper.class)
.formatMapperFileName("%sMapper")
.enableMapperAnnotation()
.formatXmlFileName("%sMapper");
})
.execute();
}
}
详细配置可以参考官网
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)