mybatisplus程式碼生成

愚昧小生發表於2024-06-20

1.引入依賴

點選檢視程式碼
           <!--mybatis-plus-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.4.1</version>
            </dependency>
            <!--mybatis-plus 程式碼生成器-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>3.4.1</version>
            </dependency>
            <!-- Mybatis Plus 程式碼生成器模板引擎,  -->
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
                <version>3.4.1</version>
            </dependency>
2.程式碼生成
點選檢視程式碼
 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("Helen");
        gc.setOpen(false); //生成後是否開啟資源管理器
        gc.setServiceName("%sService");	//去掉Service介面的首字母I
        gc.setIdType(IdType.AUTO); //主鍵策略
        gc.setSwagger2(true);//開啟Swagger2模式
        mpg.setGlobalConfig(gc);

        // 3、資料來源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/xxx?serverTimezone=GMT%2B8&characterEncoding=utf-8");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("xxx");
        dsc.setPassword("xxx");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 4、包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("xx.xx.xx.xx");
        pc.setEntity("entity"); //此物件與資料庫表結構一一對應,透過 DAO 層向上傳輸資料來源物件。
        mpg.setPackageInfo(pc);

        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);//資料庫表對映到實體的命名策略
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//資料庫表欄位對映到實體的命名策略
        strategy.setEntityLombokModel(true); // lombok
        strategy.setLogicDeleteFieldName("is_deleted");//邏輯刪除欄位名
        strategy.setEntityBooleanColumnRemoveIsPrefix(true);//去掉布林值的is_字首(確保tinyint(1))
        strategy.setRestControllerStyle(true); //restful api風格控制器 返回json
        mpg.setStrategy(strategy);

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

相關文章