1. 程式人生 > 實用技巧 >mybatisplus程式碼生成器

mybatisplus程式碼生成器

1、比較MP 的程式碼生成器 和 Mybatis MBG 程式碼生成器:

MP 的程式碼生成器都是基於 java 程式碼來生成。MBG 基於 xml 檔案進行程式碼生成

MyBatis 的程式碼生成器可生成: 實體類、Mapper 介面、Mapper 對映檔案

MP 的程式碼生成器可生成: 實體類(可以選擇是否支援 AR)、Mapper 介面、Mapper 對映檔案、 Service 層、Controller 層.

2、表及欄位命名策略選擇

在 MP 中,我們建議資料庫表名 和 表字段名採用駝峰命名方式, 如果採用下劃 線命名方式 請開啟全域性下劃線開關,如果表名欄位名命名方式不一致請註解指定,我 們建議最好保持一致。

3、如何使用程式碼生成器

1)加入依賴資訊

<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.0</version>
</dependency>
<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>

2)生成器程式碼

@Test
public void testGenerater(){
    //1、全域性策略配置
    GlobalConfig config = new GlobalConfig();
    config.setActiveRecord(true)
            .setAuthor("houchen")
            .setOutputDir("D:\\myworkspace\\mybatis-plus\\mp03\\src\\main\\java")
            .setFileOverride(true) //多次生成是否檔案覆蓋
            .setIdType(IdType.AUTO)
            .setServiceName("%sService") //設定生成的service介面的名字的首字母是否為I
            .setBaseResultMap(true)
            .setBaseColumnList(true); //生成基本的sql片段

    //2、資料來源配置
    DataSourceConfig dsConfig = new DataSourceConfig();
    dsConfig.setDbType(DbType.MYSQL)
            .setDriverName("com.mysql.jdbc.Driver")
            .setUrl("jdbc:mysql://localhost:3306/mybatis")
            .setUsername("root")
            .setPassword("houchen");

    //3、策略配置
    StrategyConfig sconfig = new StrategyConfig();
    sconfig.setCapitalMode(true) //開啟全域性大寫命名
            .setDbColumnUnderline(true) //指定表名  欄位名是否設定下劃線
            .setNaming(NamingStrategy.underline_to_camel) //下劃線轉駝峰
            .setTablePrefix("tbl_") //設定表名字首
            .setInclude("tbl_employee"); //生成使用的表


    //4、包名配置
    PackageConfig packageConfig = new PackageConfig();
    packageConfig.setParent("com.atguigu.mp")
            .setController("controller")
            .setService("service")
            .setMapper("mapper")
            .setEntity("beans")
            .setXml("mapper");   // sql 對映檔案

    //5、整合所有的配置
    AutoGenerator autoGenerator = new AutoGenerator();
    autoGenerator.setGlobalConfig(config);
    autoGenerator.setDataSource(dsConfig);
    autoGenerator.setStrategy(sconfig);
    autoGenerator.setPackageInfo(packageConfig);

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