使用mybatisplus生成表的代碼記錄


最近在做一個springcloud項目使用的是postgre,網上一直找相關信息,無奈太少,找到生成方法,分享一下

通過Mybatis-Plus強大的自動代碼生成功能我們可以讓項目自動生成一些通用的類。如controller,service,dao,mapper等。進行代碼自動生成之前,我們需要提前創建好一個表。自動代碼生成會根據關聯的這張表去生成代碼。

1: 首先創建一個空的SpringBoot項目,在pom文件中加入依賴。

<!-- mybatisplus與springboot整合 -->
 <dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>mybatisplus-spring-boot-starter</artifactId>
     <version>1.0.5</version>
 </dependency>
 <!-- MP 核心庫 -->
 <dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>mybatis-plus</artifactId>
     <version>2.1.8</version>
 </dependency>
 <dependency>
     <groupId>org.mybatis.spring.boot</groupId>
     <artifactId>mybatis-spring-boot-starter</artifactId>
     <version>1.3.2</version>
 </dependency>
 <!-- 模板引擎 代碼生成 -->
 <dependency>
     <groupId>org.apache.velocity</groupId>
     <artifactId>velocity</artifactId>
     <version>1.7</version>
 </dependency>

以上是網友添加的依賴,我運行時發現沒有postgresql的驅動,手動添加了如下:

 <!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
 <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>42.2.5</version>
  </dependency>

若還有其他包缺失,請在此網站查詢添加。

2: 至此,添加完項目依賴。進行配置文件管理。在application.yml中進行如下配置。

#配置Mybatis-Plus
mybatis-plus:
    #配置掃描xml
    mapper-locations: classpath*:mapper/*/*Mapper.xml
    #配置實體掃描類
    type-aliases-package: 自己的包路徑.*.mapper
    #邏輯刪除配置
    global-config:
        sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
        logic-delete-value: 1
        logic-not-delete-value: 0

3: 最后,在test包下新建文件CodeGeneration.java

package com.xxx.xxx.goods;

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.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

/**
 * 自動生成類
 *
 * @author zhaohualuo
 * @date 2019/8/16
 **/
public class CodeGeneration {

    //main函數
    public static void main(String[] args) {

        AutoGenerator autoGenerator = new AutoGenerator();

        //全局配置
        GlobalConfig gc = new GlobalConfig();
        String oPath = System.getProperty("user.dir");//得到當前項目的路徑
        gc.setOutputDir(oPath + "/src/main/java");   //生成文件輸出根目錄
        gc.setOpen(false);//生成完成后不彈出文件框
        gc.setFileOverride(true);  //文件覆蓋
        gc.setActiveRecord(false);// 不需要ActiveRecord特性的請改為false
        gc.setEnableCache(false);// XML 二級緩存
        gc.setBaseResultMap(true);// XML ResultMap
        gc.setBaseColumnList(false);// XML columList
        gc.setAuthor("zhaohualuo");// 作者

        // 自定義文件命名,注意 %s 會自動填充表實體屬性!
        gc.setControllerName("%sController");
        gc.setServiceName("%sService");
        gc.setServiceImplName("%sServiceImpl");
        gc.setMapperName("%sMapper");
        gc.setXmlName("%sMapper");
        autoGenerator.setGlobalConfig(gc);

        // 數據源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setDbType(DbType.POSTGRE_SQL);   //設置數據庫類型,我是postgresql
        dsc.setDriverName("org.postgresql.Driver");
        dsc.setUsername("postgres");
        dsc.setPassword("admin");
        dsc.setUrl("jdbc:postgresql://localhost:5432/book");  //指定數據庫
        autoGenerator.setDataSource(dsc);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);      // 表名生成策略
        strategy.setInclude(new String[] { "platform_goods" });     // 需要生成的表
        strategy.setSuperServiceClass(null);
        strategy.setSuperServiceImplClass(null);
        strategy.setSuperMapperClass(null);
        autoGenerator.setStrategy(strategy);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.xxxx.xx.goods");
        pc.setController("controller");
        pc.setService("service");
        pc.setServiceImpl("service.impl");
        pc.setMapper("mapper");
        pc.setEntity("entity");
        pc.setXml("xml");
        autoGenerator.setPackageInfo(pc);

        // 執行生成
        autoGenerator.execute();
    }
}

在該文件右擊,run該項目即可自動生成文件。

文件已生成成功,想要使用mapper包內的文件還需要在GoodsApplication文件中添加:
@MapperScan(basePackages = {"com.xxxx.xx.**.*mapper"})

完整的GoodsApplication文件如下:

package com.xxxx.xx.goods;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
@MapperScan(basePackages = {"com.xxxx.xx.**.*mapper"})
public class GoodsApplication {

    public static void main(String[] args) {
        SpringApplication.run(GoodsApplication.class, args);
    }

    /**
     * mybatis-plus 分頁插件  根據需要添加
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}


免責聲明!

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



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