Mybatis-Plus自動生成代碼


通過Mybatis-Plus強大的自動代碼生成功能我們可以讓項目自動生成一些通用的類。如controller,service,dao,mapper等。

  進行代碼自動生成之前,我們需要提前創建好一個表。自動代碼生成會根據關聯的這張表去生成代碼。

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

通過Mybatis-Plus強大的自動代碼生成功能我們可以讓項目自動生成一些通用的類。如controller,service,dao,mapper等。

  進行代碼自動生成之前,我們需要提前創建好一個表。自動代碼生成會根據關聯的這張表去生成代碼。

  首先創建一個空的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>


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

 

至此,添加完項目依賴。進行配置文件管理。在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

最后,在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();
}
}


最后,將xml文件移動到resources目錄下,如圖:

 

————————————————
版權聲明:本文為CSDN博主「背着夢的幸存者」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_33247435/article/details/99675154

 


免責聲明!

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



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