zoukankan      html  css  js  c++  java
  • MyBatisPlus 之 代码生成器

    一、代码生成器

      1、MP 提供了大量的自定义设置,生成的代码完全能够满足各类型的需求。

      2、表及字段命名策略选择

        在 MP 中,我们建议数据库表名 和 表字段采用驼峰命名方式,如果采用下划线命名方式,请开启全局下划线开关,如果表名字段方式不一致请注解指定,建议最好保持一致。

        这么做的原因是为了避免在对应实体类时产生的性能损耗,这样字段不用做映射就能直接和实体类对应,当然如果项目里不用考虑这点性能损耗,那么你采用下划线也是没问题的,只需要在生成代码时配置 dbColumnUnderline 属性就可以。

      3、MP 与 MBG 的简单对比

        MyBatis 的代码生成器可生成:实体类,Mapper 接口,Mapper 映射文件

        MP 的代码生成器可生成:实体类(可以选择是否支持 AR)、Mapper 接口、Mapper 映射文件、Service 层,Controller 层;

    二、代码生成器依赖

      (1)模板引擎

        MP 的代码生成器默认使用的是 Apache 的 Velocity 模板,当然也可以更换为别的模板技术,例如 freemarker。此处不做过多介绍。

        需要加入 Apache Velocity 的依赖。

            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
                <version>2.0</version>
            </dependency>

      (2)加入 slf4j,查看日志输出信息

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.7</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.7.7</version>
            </dependency>

    三、MP 代码生成器示例代码

       实例代码:

        /**
         * 代码生成 示例代码
         */
        @Test
        public void test() {
            //1. 全局配置
            GlobalConfig config = new GlobalConfig();
    
            config.setActiveRecord(true)  //是否支持AR模式
                .setAuthor("njf")  //作者
                .setOutputDir("F:\My_Workspaceing\project\MyBatisPlus\mp_05_MPG\src\main\java")  //生成路径
                .setFileOverride(true)   //文件覆盖
                .setIdType(IdType.AUTO)  //主键策略
                .setServiceName("%sService")      //设置生成的service接口的名字的首字母是否为I,如 IEmployeeService
                .setBaseResultMap(true)
                .setBaseColumnList(true);
    
    
            //2. 数据源配置
            DataSourceConfig dsConfig = new DataSourceConfig();
            dsConfig.setDbType(DbType.MYSQL)  //设置数据库类型
                    .setDriverName("com.mysql.jdbc.Driver")
                    .setUrl("jdbc:mysql://localhost:3306/mybatis_plus/")
                    .setUsername("root")
                    .setPassword("root");
    
    
            //3. 策略配置
            StrategyConfig stConfig = new StrategyConfig();
                stConfig.setCapitalMode(true)  //全局大写命名
                    .setDbColumnUnderline(true)   //指定表名,字段名是否使用下划线
                    .setNaming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略
                    .setTablePrefix("tbl_")
                    .setInclude("tbl_employee");  //生成的表
    
            //4. 包名策略配置
            PackageConfig pkConfig = new PackageConfig();
                pkConfig.setParent("com.njf.mp")
                        .setMapper("mapper")
                        .setService("service")
                        .setController("controller")
                        .setEntity("beans")
                        .setXml("mapper");
    
            //5. 整合配置
            AutoGenerator ag = new AutoGenerator();
            ag.setGlobalConfig(config);
            ag.setDataSource(dsConfig);
            ag.setStrategy(stConfig);
            ag.setPackageInfo(pkConfig);
    
            //6.执行
            ag.execute();
        }

      

      上面的配置只是一些常用的配置信息,更完善的配置信息请参照官方文档。

      文档地址:https://mp.baomidou.com/guide/generator.html

  • 相关阅读:
    自动化部署之jenkins及简介
    gitlab的备份与恢复与迁移
    P2561 [AHOI2002]黑白瓷砖
    P2042 [NOI2005]维护数列
    P2156 [SDOI2009]细胞探索
    P2154 [SDOI2009]虔诚的墓主人
    P2148 [SDOI2009]E&D
    2019.2.26考试T2 矩阵快速幂加速DP
    loj #6485. LJJ 学二项式定理 (模板qwq)
    P3224 [HNOI2012]永无乡
  • 原文地址:https://www.cnblogs.com/niujifei/p/15340532.html
Copyright © 2011-2022 走看看