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

大家在刚开始工作的时候对dao,entity,service,controller都要自己去编写。而这部分代码,都是有一定的规范,有需求,就有对应的产品应运而生,AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

所以,今天来讲讲怎么用代码生成器!

首先就是pom文件~,将相关依赖配置完毕



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.6.RELEASE
         
    
    com.cxyxs
    auto
    0.0.1-SNAPSHOT
    auto
    Demo project for Spring Boot

    
        1.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-dependencies
                        package
                        
                            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,Java,java,intellij-idea)