mybatisplus|MybatisPlus之代码生成器(有此一篇即可)

大家在刚开始工作的时候对dao,entity,service,controller都要自己去编写。而这部分代码,都是有一定的规范,有需求,就有对应的产品应运而生,AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
所以,今天来讲讲怎么用代码生成器!
首先就是pom文件~,将相关依赖配置完毕

4.0.0org.springframework.boot spring-boot-starter-parent 2.2.6.RELEASE com.cxyxs auto 0.0.1-SNAPSHOT auto Demo project for Spring Boot1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test com.baomidou mybatis-plus-boot-starter 3.3.0 com.baomidou mybatis-plus-generator 3.3.1.tmp org.apache.velocity velocity-engine-core 2.2 org.projectlombok lombok true mysql mysql-connector-java 8.0.18 com.alibaba druid 1.1.6 org.springframework.boot spring-boot-devtools true com.spring4all spring-boot-starter-swagger 1.5.1.RELEASE codeauto src/main/resources **/* true src\main\java **/*.xml org.springframework.boot spring-boot-maven-plugin org.apache.maven.plugins maven-jar-plugin true lib/ com.cxyxs.auto.AutoApplication org.apache.maven.plugins maven-dependency-plugin copy-dependenciespackage copy-dependencies ${project.build.directory}/lib org.apache.maven.plugins maven-surefire-plugin true

然后就是配置application文件----
该文件大家根据自己需求配置即可。主要将datasourse配置正确即可
#配置数据源 spring: datasource: druid: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/warehouse?useUnicode=true&characterEncoding=utf8&useSSL=false&zeroDateTimeBehavior=convertToNull&autoReconnect=true&serverTimezone=Asia/Shanghai username: root password: max-active: 20 max-wait: 5000 initial-size: 1 filters: stat,log4j,wall validation-query: SELECT 'X'#验证连接 enable: true

启动类(Application)就用大家平时用的就好~~~~~
接下来就是比较重要的!!!!
万事俱备只欠东风
package com.example.demo; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.baomidou.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; 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 org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.ArrayList; import java.util.List; /** * Description: * Author: xiaobai * Date: * Modified By: */ @RunWith(SpringRunner.class) @SpringBootTest public class CodeGenerationTests { @Test 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("me"); //设置作者 //生成代码后,是否打开文件夹 gc.setOpen(false); gc.setFileOverride(false); //是否覆盖原来代码,个人建议设置为false,别覆盖,危险系数太高 gc.setServiceName("%sService"); //去掉service的I前缀,一般只需要设置service就行 /*gc.setMapperName("%sMapper"); gc.setXmlName("%sMapper"); gc.setServiceImplName("%sServiceImpl"); gc.setControllerName("%sController"); */ gc.setEntityName("%sDO"); gc.setDateType(DateType.ONLY_DATE); //日期格式 gc.setSwagger2(true); // 实体属性 Swagger2 注解,实体类上会增加注释 mpg.setGlobalConfig(gc); // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://127.0.0.1:3306/warehouse?useUnicode=true&characterEncoding=utf8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8"); // dsc.setSchemaName("public"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword(""); dsc.setDbType(DbType.MYSQL); //指定数据库的类型 mpg.setDataSource(dsc); // 包配置 PackageConfig pc = new PackageConfig(); pc.setParent("com.example.demo"); //自定义包的路径 //pc.setModuleName("module"); //模块名称设置后,会生成com.cxyxs.test.module,里面存放之前设置的mapper,entity pc.setEntity("entity"); pc.setMapper("mapper"); pc.setService("service"); pc.setController("controller"); mpg.setPackageInfo(pc); // 策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setInclude("bus_customer","bus_goods","bus_inport","bus_outport","bus_provider", "bus_sales","bus_salesback","sys_dept","sys_loginfo","sys_notice","sys_permission", "sys_role","sys_role_permission","sys_user","sys_user_role"); //设置映射的表名,可以设置多个表//表前缀设置d_student strategy.setTablePrefix(new String[]{"d_"}); //包的命名规则,使用驼峰规则 strategy.setNaming(NamingStrategy.underline_to_camel); //列的名称,使用驼峰规则 strategy.setColumnNaming(NamingStrategy.underline_to_camel); //是否使用lombok strategy.setEntityLombokModel(true); //驼峰命名 strategy.setRestControllerStyle(true); strategy.setLogicDeleteFieldName("is_delete"); //逻辑删除,假删除会用到//自动填充字段,在项目开发过程中,例如创建时间,修改时间,每次,都需要我们来指定,太麻烦了,设置为自动填充规则,就不需要我们赋值咯 TableFill fillInsert = new TableFill("create_time", FieldFill.INSERT); TableFill fillUpdate= new TableFill("update_time", FieldFill.UPDATE); List fillLists = new ArrayList(); fillLists.add(fillInsert); fillLists.add(fillUpdate); strategy.setTableFillList(fillLists); //乐观锁 //strategy.setVersionFieldName("version"); mpg.setStrategy(strategy); mpg.execute(); //执行 } }

在该方法里面,大家需要将需要对应自己的数据库,需要使用的表,以及其他事项代码均有讲解。
最后运行main方法,代码即可生成。需要说明的是,数据库中的表字段有注释的话,在实体类里面也会有对应的注释的。
【mybatisplus|MybatisPlus之代码生成器(有此一篇即可)】以上就是代码生成的步骤。

    推荐阅读