MybatisPlus提供了代码生成器,用来帮助用户生成entity、dao、service、serviceImpl、controller、mapper
1.创建一个springboot项目
2.导入相关依赖
<!-- 代码生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!-- velocity模板引擎-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
3.创建代码生成器类
创建代码生成器对象
public static void main(String[] args) {
//创建代码生成器对象,执行生成代码操作
AutoGenerator autoGenerator=new AutoGenerator();
autoGenerator.execute();
}
配置数据源
public static void main(String[] args) {
//创建代码生成器对象,执行生成代码操作
AutoGenerator autoGenerator=new AutoGenerator();
//数据源:读取数据库中的信息,根据数据库表结构生成代码
DataSourceConfig dataSourceConfig=new DataSourceConfig();
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mp?serverTimezone=UTC");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("1234");
autoGenerator.setDataSource(dataSourceConfig);
autoGenerator.execute();
}
设置全局配置
GlobalConfig globalConfig=new GlobalConfig();
//将生成的代码输出到当前项目中
String projectPath="F:\\java_learn\\MybatisPlus";
globalConfig.setOutputDir(projectPath+"/mybatisplus_codegenerate/src/main");
//设置生成完毕后是否打开生成代码所在的目录
globalConfig.setOpen(false);
//设置作者
globalConfig.setAuthor("肥大毛");
//设置新生成的文件是否覆盖原始文件
globalConfig.setFileOverride(false);
//设置数据层接口名,数据库中表为tb_user,生成的数据层接口名为Tb_userDao
globalConfig.setMapperName("%sDao");
//设置Id生成策略
globalConfig.setIdType(IdType.ASSIGN_ID);
autoGenerator.setGlobalConfig(globalConfig);
设置包名相关的配置
PackageConfig packageConfig=new PackageConfig();
//设置生成的包名,与代码所在的位置不冲突,二者叠加组成完整路径
packageConfig.setParent("com.itheima");
//设置生成的实体类包名
packageConfig.setEntity("domain");
//设置生成的数据层包名
packageConfig.setMapper("dao");
autoGenerator.setPackageInfo(packageConfig);
策略设置
StrategyConfig strategyConfig=new StrategyConfig();
//设置当前参与生成的表名,可以有多个参数,用逗号隔开
strategyConfig.setInclude("tb_user");
//去掉数据库表名的前缀生成实体类名称
strategyConfig.setTablePrefix("tb_");
//设置是否启用Rest风格
strategyConfig.setRestControllerStyle(true);
//设置乐观锁字段名
strategyConfig.setVersionFieldName("version");
//设置逻辑删除字段名
strategyConfig.setLogicDeleteFieldName("deleted");
//设置是否启用lombok
strategyConfig.setEntityLombokModel(true);
autoGenerator.setStrategy(strategyConfig);
运行结果