MyBatis-Plus 代碼自動生成器






MyBatis-Plus 代碼自動生成器



## 1、介紹

​ MyBatis-Plus CodeGenerator 代碼自動生成器,可以根據使用者的配置,去數據庫中根據每一個數據表自動生成對應的 Controller、Service、ServiceImpl、Mapper、Entity 等繁瑣且沒有技術含量的事情,提高開發效率。





## 2、導入依賴
    <dependencies>
        <!-- mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

        <!-- mybatis-plus-generator -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.4.1</version>
        </dependency>

        <!--   junit     -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.3.4.RELEASE</version>
            <scope>test</scope>
        </dependency>

        <!-- mysql 驅動 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>

        <!-- 模板引擎 默認 -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>

        <!-- 以上為 MyBatis-Plus 生成代碼的依賴 -->
        <!-- 以下為 基本 SpringBoot 的搭建 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>

        <!-- lombox -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
            <scope>compile</scope>
        </dependency>

        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
    </dependencies>

    <!-- 生成代碼所需要的插件插件 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.6.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>java</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <classpathScope>test</classpathScope>
                </configuration>
            </plugin>
        </plugins>
    </build>




## 3、配置類
import com.baomidou.mybatisplus.annotation.DbType;
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.rules.NamingStrategy;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class CodeGenerator {


    @Test
    public void genCode() {

        // 1、創建代碼生成器
        AutoGenerator mpg = new AutoGenerator();

        // 2、全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        // 項目輸出根目錄
        gc.setOutputDir(projectPath + "/src/main/java");
        // 作者
        gc.setAuthor("lishihuai");
        //生成后是否打開資源管理器
        gc.setOpen(false);
        //去掉Service接口的首字母I
        gc.setServiceName("%sService");
        //主鍵策略
        gc.setIdType(IdType.AUTO);
        //開啟Swagger2模式
        gc.setSwagger2(true);
        mpg.setGlobalConfig(gc);

        // 3、數據源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://192.168.200.128:3306/gmall_product?serverTimezone=GMT%2B8&characterEncoding=utf-8");
        dsc.setDriverName("com.mysql.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 4、包配置
        PackageConfig pc = new PackageConfig();
        // 生成的文件放在那個目錄下  若沒有該文件 則會創建
        pc.setParent("com.alibaba.product");
        //此對象與數據庫表結構一一對應,通過 DAO 層向上傳輸數據源對象。
        pc.setEntity("pojo.entity");
        mpg.setPackageInfo(pc);

        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();
        //數據庫表映射到實體的命名策略
        strategy.setNaming(NamingStrategy.underline_to_camel);
        //數據庫表字段映射到實體的命名策略
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        // lombok
        strategy.setEntityLombokModel(true);
        //邏輯刪除字段名
        strategy.setLogicDeleteFieldName("is_deleted");
        //去掉布爾值的is_前綴(確保tinyint(1))
        strategy.setEntityBooleanColumnRemoveIsPrefix(true);
        //restful api風格控制器
        strategy.setRestControllerStyle(true);
        mpg.setStrategy(strategy);

        // 6、執行
        mpg.execute();
    }

}





4、執行測試類、生成代碼



> 執行生成前:



執行的配置類



> 執行生成后的文件結構





5、最終效果:



### Controller



### Service



ServiceImpl



Mapper



XML

北冥寒霜

2021年9月2日14:13:49


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM