AutoGenerator代碼生成器


MP的代碼生成器介紹

問題:

目前我們在開發SSM項目的時候,會先搭建一個SSM的開發環境。

我們會根據數據庫的表在pojo包中創建對應的實體類,而且可以不

關心項目功能的同時,在mapper層對數據庫的表的基礎增刪改查功

能提前實現,同理,在service層可以將基礎的業務代碼提前聲明。

然后再根據項目功能完成對應的復雜操作。而整個過程需要程序員手動

完成搭建,效率低下。

 

 

解決:

創建一個代碼生成類,調用該類的對象,並將對應的數據庫表作為參數傳遞進入

以及一些生成代碼的其他要求也傳遞給該對象,讓該對象幫助我們生成基礎的開發

代碼。

 

 

實現:

MP的代碼生成器

作用:

根據數據庫中的表動態的生成表對應的mapper,service,pojo,controller層的基礎代碼,提升開發效率。

[2] MP代碼生成器的使用

1.  導入代碼生成器相關jar包

 

 

2.  使用代碼生成器生成代碼 

package com.bjsxt.test;
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;

public class TestCode {
    public static void main(String[] args) {
        // 代碼生成器
             AutoGenerator mpg = new AutoGenerator();
        //全局配置策略
            GlobalConfig gc = new GlobalConfig();
            String path = System.getProperty("user.dir");//動態獲取當前項目的路徑
            System.out.println(path);
            gc.setFileOverride(false);// 是否覆蓋同名文件,默認是false
            gc.setActiveRecord(true);// 不需要ActiveRecord特性的請改為false
            gc.setEnableCache(false);// XML 二級緩存
            gc.setBaseResultMap(true);// XML ResultMap
            gc.setBaseColumnList(false);// XML columList
            gc.setOutputDir(path+"/09-mp-code/src");
            gc.setIdType(IdType.AUTO);//設置主鍵策略

        //數據源配置
            DataSourceConfig dsc = new DataSourceConfig();
            dsc.setUrl("jdbc:mysql://localhost:3306/mp?useUnicode=true&useSSL=false&characterEncoding=utf8");
            // dsc.setSchemaName("public");
            dsc.setDriverName("com.mysql.jdbc.Driver");
            dsc.setUsername("root");
            dsc.setPassword("1234");

        // 包配置
            PackageConfig pc = new PackageConfig();
            pc.setParent("com.bjsxt")
                    .setMapper("mapper")
                    .setService("service")
                    .setController("controller")
                    .setEntity("pojo")
                    .setXml("mapper");
        //策略配置
            StrategyConfig stConfig = new StrategyConfig();
            stConfig.setCapitalMode(true) //全局大寫命名
                    .setNaming(NamingStrategy.underline_to_camel) // 數據庫表映射到實體的命名策略
                    .setTablePrefix("t_")
                    .setInclude("t_student"); // 生成的表,多個表繼續傳遞即可,String類型的可變參數

        //將策略配置對象集成到代碼生成器中
            mpg.setGlobalConfig(gc);
            mpg.setDataSource(dsc);
            mpg.setPackageInfo(pc);
            mpg.setStrategy(stConfig);
            //執行生成
            mpg.execute();
    }
}

  


免責聲明!

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



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