MyBatisPlus3.4.3版自動(dòng)生成代碼的使用過(guò)程
AutoGenerator 是 MyBatis-Plus 的代碼生成器,通過(guò) AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各個(gè)模塊的代碼,極大的提升了開(kāi)發(fā)效率。
1 準(zhǔn)備工作
創(chuàng)建springboot工程,這里省略。
2 導(dǎo)入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- mybatisplus依賴,注意不用引入mybatis依賴-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.4</version>
</dependency>
<!-- mysql依賴可換成對(duì)應(yīng)版本 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!-- mybatis-plus代碼生成器依賴-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<!-- 自動(dòng)生成代碼的模板引擎,mybatis-plus默認(rèn)的-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<!-- 由于生成的controller會(huì)用到web的注解-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
3 創(chuàng)建CodeGeneratorTest類
需要對(duì)
- 數(shù)據(jù)源配置,(自己數(shù)據(jù)庫(kù)對(duì)應(yīng)的url,username,password等)
- 全局配置, (作者信息,輸出目錄等)
- 包配置, (Entity、Mapper、Mapper XML、Service、Controller 等各個(gè)模塊的包命名等)
- 策略配置, (配置生成那些表,怎么生成等)
- 模板配置
- 注入配置
注意以下路徑需要修改為實(shí)制項(xiàng)目路徑,要生成的數(shù)據(jù)庫(kù)表名需要修改為實(shí)制的,數(shù)據(jù)庫(kù)源url修改為對(duì)應(yīng)的數(shù)據(jù)源
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
import com.baomidou.mybatisplus.generator.keywords.MySqlKeyWordsHandler;
import org.junit.Test;
import java.util.Collections;
/**
* @author: wuKeFan
* @date: 2022/2/24 10:39
* @version 1.0
*/
public class CodeGeneratorTest {
@Test
public void run() {
FastAutoGenerator.create(
//數(shù)據(jù)源配置,url需要修改
new DataSourceConfig.Builder("url","username","password")
.dbQuery(new MySqlQuery())
.schema("schema")
.typeConvert(new MySqlTypeConvert())
.keyWordsHandler(new MySqlKeyWordsHandler())
)
//全局配置
.globalConfig(builder -> {
builder.author("wuKeFan") // 設(shè)置作者
//.disableOpenDir()//禁止打開(kāi)輸出目錄
//.enableSwagger() // 開(kāi)啟 swagger 模式
.fileOverride() // 覆蓋已生成文件
.outputDir(System.getProperty("user.dir")+"/src/main/java"); // 指定輸出目錄
})
//包配置
.packageConfig(builder -> {
builder.parent("com.wkf.workrecord.tools.autocode") // 設(shè)置父包名,根據(jù)實(shí)制項(xiàng)目路徑修改
.moduleName("web") // 父包名路徑下再新建的文件夾
.entity("entity") // 后面這些是sys文件夾里新建的各分類文件夾
.service("service")
.serviceImpl("service.impl")
.mapper("mapper")
.xml("mapper.xml")
.controller("controller")
//.other("other")
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir")+"/src/main/java/com/wkf/workrecord/tools/autocode/web/mapper/xml")); // 存放mapper.xml路徑
})
//策略配置
.strategyConfig(builder -> {
builder.addInclude("jm_fxy_apply_staging_plan_code") // 設(shè)置需要生成的表名
.addTablePrefix("jm_") // 設(shè)置過(guò)濾表前綴
.entityBuilder() //實(shí)體類配置
.enableLombok() //使用lombok
.enableTableFieldAnnotation()//實(shí)體類字段注解
.controllerBuilder()//controller配置
.enableRestStyle()//開(kāi)啟restcontroller
.mapperBuilder()
.enableMapperAnnotation()//開(kāi)啟mapper注解
.enableBaseResultMap()//啟用 BaseResultMap 生成
.enableBaseColumnList();//啟用 BaseColumnList
})
//.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默認(rèn)的是Velocity引擎模板
.execute();
}
}
4 運(yùn)行代碼生成器
點(diǎn)擊運(yùn)行上面的main方法就能自動(dòng)生成了
生成的效果圖:

這樣代碼生成器就寫(xiě)好了,如果需要其他格式模板可以自行參考下面的配置,自行修改
5 數(shù)據(jù)庫(kù)配置(DataSourceConfig)
5.1 基礎(chǔ)配置

5.2 可選配置

5.3 全局配置(GlobalConfig)

5.4 包配置(PackageConfig)

5.5 模板配置(TemplateConfig)

5.6 注入配置(InjectionConfig)

5.7 策略配置(StrategyConfig)

5.8 Entity 策略配置

5.9 Controller 策略配置

5.10 Service 策略配置

5.11 Mapper 策略配置

到此這篇關(guān)于MyBatisPlus3.4.3版自動(dòng)生成代碼的使用的文章就介紹到這了,更多相關(guān)MyBatisPlus自動(dòng)生成代碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
運(yùn)行時(shí)常量池和字符串常量池的區(qū)別及說(shuō)明
這篇文章主要介紹了運(yùn)行時(shí)常量池和字符串常量池的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
在Java內(nèi)存模型中測(cè)試并發(fā)程序代碼
這篇文章主要介紹了在Java內(nèi)存模型中測(cè)試并發(fā)程序代碼,輔以文中所提到的JavaScript庫(kù)JCStress進(jìn)行,需要的朋友可以參考下2015-07-07
JVM入門(mén)之類加載與字節(jié)碼技術(shù)(類加載與類的加載器)
Java字節(jié)碼增強(qiáng)指的是在Java字節(jié)碼生成之后,對(duì)其進(jìn)行修改,增強(qiáng)其功能,這種方式相當(dāng)于對(duì)應(yīng)用程序的二進(jìn)制文件進(jìn)行修改。Java字節(jié)碼增強(qiáng)主要是為了減少冗余代碼,提高性能等2021-06-06
Java Socket實(shí)現(xiàn)多人聊天系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java Socket實(shí)現(xiàn)多人聊天系統(tǒng),具有圖形界面,實(shí)現(xiàn)文件傳輸功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
利用Java實(shí)現(xiàn)輕松解析DNS報(bào)文
這篇文章主要為大家詳細(xì)介紹了如何利用Java實(shí)現(xiàn)輕松解析DNS報(bào)文,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起了解一下2023-11-11
Java線程池隊(duì)列LinkedBlockingDeque
這篇文章主要為大家介紹了Java線程池隊(duì)列LinkedBlockingDeque示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
關(guān)于Filter中獲取請(qǐng)求體body后再次讀取的問(wèn)題
這篇文章主要介紹了關(guān)于Filter中獲取請(qǐng)求體body后再次讀取的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03

