• Mybatis-Plus代码生成器


    1.配置maven依赖pom.xml

    <dependencies>
            <!-- 数据库驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
    
            <!-- lombok -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
    
            <!-- mybatis-plus -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.0.5</version>
            </dependency>
            
            <!--MyBatis-Plus从3.0.3之后移除了代码生成器与模板引擎的默认依赖,需要手动添加相关依赖-->
            <!-- 代码生成器 依赖 -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>3.3.1</version>
            </dependency>
            <!-- 模板引擎 -->
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
                <version>2.0</version>
            </dependency>
    </dependencies>

    2.配置数据库连接

    server:
      port: 8081
    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
        username: root
        password: root
        type: com.alibaba.druid.pool.DruidDataSource
    mybatis-plus:
      mapper-locations: classpath:mapper/*.xml
      global-config:
        db-config:
          id-type: auto
          field-strategy: NOT_EMPTY
          db-type: MYSQL
      configuration:
        map-underscore-to-camel-case: true
        call-setters-on-nulls: true
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

    3.配置mybatis-plus的代码生成器

    
    
    public class GeneratorCode {
        public static void main(String[] args) {
            // 构建一个代码自动生成器对象
            AutoGenerator mpg = new AutoGenerator();
    
            // 配置策略
            // 1、全局配置
            GlobalConfig gc = new GlobalConfig();
            String projectPath = System.getProperty("user.dir");
            gc.setOutputDir(projectPath+"/src/main/java");
            gc.setAuthor("作者");
            gc.setOpen(false);
            gc.setFileOverride(false); // 是否覆盖
            gc.setServiceName("%sService"); // 去Service的I前缀
            gc.setIdType(IdType.AUTO); // 主键自增
            gc.setDateType(DateType.ONLY_DATE); // 设置日期类型
    //        gc.setSwagger2(true); // 是否开启swagger
            mpg.setGlobalConfig(gc);
    
            //2、设置数据源
            DataSourceConfig dsc = new DataSourceConfig();
            dsc.setUrl("jdbc:mysql://localhost:3306/数据库名?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
            dsc.setDriverName("com.mysql.cj.jdbc.Driver");
            dsc.setUsername("root");
            dsc.setPassword("密码");
            dsc.setDbType(DbType.MYSQL);
            mpg.setDataSource(dsc);
    
            //3、包的配置
            PackageConfig pc = new PackageConfig();
    //        pc.setModuleName("test"); // 模块名
            pc.setParent("com.包名字"); // 父路径
            pc.setEntity("entity"); // 实体类包名
            pc.setMapper("mapper"); // mapper包名
            pc.setService("service"); // 业务层包名
            pc.setController("controller"); // 控制层包名
            mpg.setPackageInfo(pc);
    
            //4、策略配置
            StrategyConfig strategy = new StrategyConfig();
            strategy.setInclude("表名1","表名2"); // 设置要映射的表名
            strategy.setNaming(NamingStrategy.underline_to_camel);
            strategy.setColumnNaming(NamingStrategy.underline_to_camel);
            strategy.setEntityLombokModel(true); // 自动lombok;
            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); // 下划线转驼峰
            mpg.setStrategy(strategy);
    
            mpg.execute(); //执行
        }
    }
     

    运行main()方法,会惊奇的发现多了很多文件

  • 相关阅读:
    javascript设计模式(一)职责链模式China of responsibility
    javascript设计模式(一)策略模式Strategy
    angularjs提示消息弹出框
    Javascript设计模式(一)States
    Javascript设计模式(一)Facade
    NOIP2020
    RMQ & ST表
    NOI Linux
    初赛解析
    贪心大解析
  • 原文地址:https://www.cnblogs.com/niudaben/p/11871507.html
Copyright © 2020-2023  润新知