1.创建springboot项目:(这里用了最新版本)
2.导入mybatisplus逆向工程的五个依赖(依赖的版本尽量按照这个)
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.2.0</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.0</version> </dependency>
3.编写配置文件(yml格式:里面记得修改一下你自己的数据库)
#关于数据库的配置 server: port: 8080 servlet: context-path: / spring: datasource: url: jdbc:mysql://localhost:3306/bookstore210323?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123 driver-class-name: com.mysql.cj.jdbc.Driver jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 serialization: write-dates-as-timestamps: false #关于mybatisplus的配置 mybatis-plus: configuration: map-underscore-to-camel-case: true #开启驼峰功能 auto-mapping-behavior: full #自动填充 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #控制台打印sql mapper-locations: classpath*:mapper/**/*Mapper.xml #将配置路径下的*.xml文件加载到mybatis中 global-config: # 逻辑删除配置 db-config: # 删除前 logic-not-delete-value: 1 # 删除后 logic-delete-value: 0
4.在主启动类上创建conf配置目录,编写代码自动生成类
package com.mybatisplus.conf; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.po.TableFill; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import java.util.ArrayList; /** * 自动生成代码器 */ public class GeneratorCodeConfig { public static void main(String[] args) { // 代码生成器 AutoGenerator mpg = new AutoGenerator(); // 全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir");//获取当前的路径 gc.setOutputDir(projectPath + "/src/main/java");//在当前路径上加上这个路径 gc.setAuthor("kate");//添加作者信息 gc.setOpen(false);//是否打开资源管理器 gc.setFileOverride(false);//是否覆盖文件 gc.setServiceName("%sService");//去除服务接口service前缀 gc.setIdType(IdType.ID_WORKER);//使用默认主键 gc.setDateType(DateType.ONLY_DATE);//设置默认的时间格式 gc.setSwagger2(false); //实体属性 Swagger2 注解 mpg.setGlobalConfig(gc);//把全局配置放入代码生成器中 // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); //在这里需要改成你自己的数据库 dsc.setUrl("jdbc:mysql://127.0.0.1:3306/bookstore210323?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("123"); dsc.setDbType(DbType.MYSQL);//设置默认类型 mpg.setDataSource(dsc);//将数据源配置放入代码生成器中 // 包配置 PackageConfig pc = new PackageConfig(); //这里需要设置自己的包路径名 pc.setModuleName("mybatisplus");//设置模块名 pc.setParent("com");//设置包名,这样com.atguigu.blog pc.setEntity("entity");//设置实体类的包名 pc.setMapper("mapper");//设置持久层的包名 pc.setService("service");//设置业务层的包名 pc.setController("controller");//设置表现层(控制层)的包名 mpg.setPackageInfo(pc);//将包的配置放入到自动代码生成器中 // 策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setInclude("t_user");//设置要包含生成的表 strategy.setNaming(NamingStrategy.underline_to_camel);//设置驼峰命名的自动映射 strategy.setColumnNaming(NamingStrategy.underline_to_camel);//设置列名的驼峰命名自动映射 strategy.setEntityLombokModel(true);//设置是否支持lombok strategy.setRestControllerStyle(true); strategy.setLogicDeleteFieldName("deleted");//自动配置逻辑删除字段 //自动填充配置 TableFill gmtCreate = new TableFill("gmt_create", FieldFill.INSERT); TableFill gmtModified = new TableFill("gmt_modified", FieldFill.INSERT); //创建一个list集合,把两个自动填充策略加入到这个集合 ArrayList<TableFill> tableFill = new ArrayList<>(); tableFill.add(gmtCreate); tableFill.add(gmtModified); strategy.setTableFillList(tableFill);//把自动填充放入到配置策略 strategy.setVersionFieldName("version");//开启乐观锁 strategy.setRestControllerStyle(true);//配置restful的风格的驼峰命名 strategy.setControllerMappingHyphenStyle(true);//url多字段的/变成_下划线 mpg.setStrategy(strategy);//把所有策略放入自动代码生成器中 mpg.execute();//执行 } }