导入依赖
<dependencies><!--mybatisplus自动代码生成时,需要基于velocity模板进行生成--><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.7</version></dependency><!-- mp生成实体类时使用swagger2的注解,需要引入对应依赖 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>3.0.5</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.22</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.8.RELEASE</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.18</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>
编写自动代码生成的工具类,进行相应的配置
/*** 代码自动生成器*/public class MybatisPlusAutoCode {public static void main(String[] args) {//构建代码自动生成器对象AutoGenerator autoGenerator = new AutoGenerator();//配置自动生成策略// 1、全局配置://https://baomidou.com/config/generator-config.html#%E5%85%A8%E5%B1%80%E7%AD%96%E7%95%A5-globalconfig-%E9%85%8D%E7%BD%AEGlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir"); //获取当前项目所在目录,里面的user.dir是固定写法gc.setOutputDir(projectPath+"/src/main/java"); //自定义代码生成后的存放目录gc.setAuthor("caixukun"); //设置项目作者gc.setOpen(false); //代码生成后是否打开文件夹gc.setFileOverride(false); //是否覆盖gc.setServiceName("%sService"); //去Service的I前缀gc.setIdType(IdType.ID_WORKER); //自定义主键生成策略gc.setDateType(DateType.ONLY_DATE); //自定义日期类型gc.setSwagger2(true); //实体使用swagger2注解autoGenerator.setGlobalConfig(gc); //添加全局配置//2、设置数据源:// https://baomidou.com/config/generator-config.html#%E6%95%B0%E6%8D%AE%E6%BA%90-datasourceconfig-%E9%85%8D%E7%BD%AEDataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://localhost:3306/mall?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false");dsc.setDriverName("com.mysql.jdbc.Driver");dsc.setUsername("root");dsc.setPassword("root");dsc.setDbType(DbType.MYSQL); //指定数据库类型autoGenerator.setDataSource(dsc); //添加数据源配置//3、包名配置:// https://baomidou.com/config/generator-config.html#%E5%8C%85%E5%90%8D%E9%85%8D%E7%BD%AEPackageConfig pc = new PackageConfig();//pc.setModuleName("rbac"); //指定生成的模块名称pc.setParent("com.woniuxy"); //设置模块中的父目录名pc.setEntity("model"); //设置实体类目录名pc.setMapper("mapper"); //设置mapper目录名pc.setService("service"); //设置service目录名pc.setController("controller"); //设置controller目录名autoGenerator.setPackageInfo(pc);//4、数据库表配置:// https://baomidou.com/config/generator-config.html#%E6%95%B0%E6%8D%AE%E5%BA%93%E8%A1%A8%E9%85%8D%E7%BD%AEStrategyConfig strategy = new StrategyConfig();// 设置要生成的实体类对应映射的表名strategy.setInclude("t_goods","t_cart","t_user","t_order","t_order_item");strategy.setTablePrefix("t_"); //去除表名前缀//设置表名生成策略,下划线转驼峰strategy.setNaming(NamingStrategy.underline_to_camel);//设置列名生成策略,下划线转驼峰strategy.setColumnNaming(NamingStrategy.underline_to_camel);strategy.setEntityLombokModel(true); //自动lombok;//strategy.setLogicDeleteFieldName("deleted"); //设置使用逻辑删除策略的属性名// 自动填充配置 TableFill//TableFill gmtCreate = new TableFill("gmt_create", FieldFill.INSERT);//TableFill gmtModified = new TableFill("gmt_modified", FieldFill.INSERT_UPDATE);//ArrayList<TableFill> tableFills = new ArrayList<>();//tableFills.add(gmtCreate);//tableFills.add(gmtModified);//strategy.setTableFillList(tableFills);//strategy.setVersionFieldName("version"); // 乐观锁strategy.setRestControllerStyle(true); //生成 @RestController 控制器strategy.setControllerMappingHyphenStyle(true); //驼峰转连字符--->localhost:8080/hello_id_2autoGenerator.setStrategy(strategy);//执行自动生成autoGenerator.execute();}}
