• mybatisplus----代码自动生成器


    代码自动生成器

    AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。


    dao,pojo,service,controller 给我自己去编写完成!

    1.先引入mybatis-plus的包依赖

    <!--mybatisplus 是自己开发并非官方-->
    <dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.1</version>
    </dependency>

      <dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.2</version>
    </dependency>
    <!--代码生成器依赖-->
    <dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.1</version>
    </dependency>

    2.配置文件中的配置

    #配置端口
    spring.port=8100
    #配置性能分析插件(显示每一条sql语句,和他的执行时间)
    spring.profiles.active=dev
    
    #禁用模板缓存
    spring.thymeleaf.cache=false
    
    
    #mysql 5 驱动不同 com.mysql.jdbc.Driver
    
    # mysql 8 驱动不同com.mysql.cj.jdbc.Driver(记住高版本兼容低版本的),需要增加市区配置serverTimezone=GMT%2B8 (东八区)
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
    #配置日志
    mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
    #配置逻辑删除
    mybatis-plus.global-config.db-config.logic-delete-value=1
    mybatis-plus.global-config.db-config.logic-not-delete-value=0

    3.MP配置类

    
    
    @MapperScan("com.hui.mapper")//把扫描mapper接口的注解移动到这个配置类上面
    @EnableTransactionManagement//事务注解默认开启
    @Configuration//配置类
    public class MybatisplusConfig {
    
     
    
    }

    4.编写代码自动生成器的功能类:

    package com.hui;
    
    
    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.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 java.util.ArrayList;
    
    //代码自动生成器
    public class HuiCode {
        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("Joker-0927");
            gc.setOpen(false);//是否打开资源管理器(生成之后是否打开文件夹)
            gc.setFileOverride(false);//是否覆盖原来生成的
            gc.setServiceName("%sService");//去service的I前缀
            gc.setIdType(IdType.ID_WORKER);//主键自动生成策略:这里还是雪花算法
            gc.setDateType(DateType.ONLY_DATE);//日期是普通日期
            gc.setSwagger2(true);//配置Swagger文档
    
            //把全局配置丢到我们的代码自动生成器的里面
            mpg.setGlobalConfig(gc);
    
            //2,配置数据源
            DataSourceConfig dsc = new DataSourceConfig();
            dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8");
            dsc.setDriverName("com.mysql.cj.jdbc.Driver");
            dsc.setUsername("root");
            dsc.setPassword("123456");
            dsc.setDbType(DbType.MYSQL);
            mpg.setDataSource(dsc);
    
    
            //包的配置
            PackageConfig pc = new PackageConfig();
            pc.setModuleName("blog");
            pc.setParent("com.hui");
            pc.setEntity("entity");
            pc.setMapper("mapper");
            pc.setService("service");
            pc.setController("controller");
            mpg.setPackageInfo(pc);
    
    //3.策略配置
    
            StrategyConfig strategy = new StrategyConfig();
            strategy.setInclude("user");//设置映射的表名
            strategy.setNaming(NamingStrategy.underline_to_camel);
            strategy.setColumnNaming(NamingStrategy.underline_to_camel);
            strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");
            strategy.setEntityLombokModel(true);
            strategy.setLogicDeleteFieldName("deleted");//配置逻辑删除
    
            //自动填充的配置
            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);//开启驼峰命名法
            strategy.setControllerMappingHyphenStyle(true);//开启rest请求
            mpg.setStrategy(strategy);
    
    
            mpg.execute();//代码构造器执行
    
    
        }
    
    
    }

    执行结果:

     

    迎风少年
  • 相关阅读:
    ubuntu安装eclipse配置jdk环境
    ubuntu之使用sublime text3搭建Python IDE
    windows远程控制ubuntu尝试--未成功
    食物链(luogu 2024)
    玉米田Corn Fields(luogu 1879)
    互不侵犯(luogu 1896)
    又是毕业季I(luogu 1372)
    Supermarket
    Network of Schools [USACO5.3]
    最大乘积
  • 原文地址:https://www.cnblogs.com/ZYH-coder0927/p/13971284.html
Copyright © 2020-2023  润新知