mybatis-plus代碼快速生成【拿走即用】
MyBatis-Plus(簡稱 MP)是一個(gè) MyBatis的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生。MP提供兩套生成方法,本著大道至簡的理論,本文重點(diǎn)介紹一種快速生成的方法,一個(gè)Main方法即可。
一、依賴引入<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.1.0</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.3</version></dependency>
<dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version></dependency>
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.18</version></dependency>
-
修改需生成的表名、前綴、模塊名、作者等信息(最外部的static常量),執(zhí)行main方法即可
-
controller可生成rest風(fēng)格和普通風(fēng)格,相關(guān)配置在 .controllerBuilder() 后
-
service相關(guān)自定義在.serviceBuilder() 后,比如修改默認(rèn)文件名
-
同理,mapper和entity的相關(guān)配置分別緊跟.mapperBuilder()和.entityBuilder()
package com.code.codegenerator;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
/*** Description: <br/>* date: 2023/9/24 10:26<br/>** @author 小塵哥<br />*/public class CodeGenerator {
/*** 需要生成代碼的數(shù)據(jù)庫表名*/private static final String TABLE_NAME = "t_books";
/*** 表前綴,生成代碼時(shí)可忽略*/private static final String TABLE_NAME_SUFFIX = "t_";/*** 模塊名*/private static final String MODULE_PACKAGE = "book";/*** 作者*/private static final String AUTHOR = "小塵哥";
/*** 輸出目錄*/private static final String OUT_PATH = "D:\\genCode";
public static void main(String[] args) {FastAutoGenerator.create("jdbc:mysql://localhost:3306/mos_demo?characterEncoding=UTF-8&useUnicode=true&useSSL=false","root", "root")// 全局配置.globalConfig(builder -> {builder.author(AUTHOR) // 設(shè)置作者.commentDate("yyyy-MM-dd hh:mm:ss") //注釋日期// .outputDir(System.getProperty("user.dir") + "/src/main/java") // 指定輸出目錄.outputDir(OUT_PATH) // 指定輸出目錄.disableOpenDir() //禁止打開輸出目錄,默認(rèn)打開;})// 包配置.packageConfig(builder -> {builder.parent("com.mos.bzn." + MODULE_PACKAGE).mapper("dao"); // 設(shè)置父包名// .pathInfo(Collections.singletonMap(OutputFile.xml, "D:\\genCode\\mappers")); // 設(shè)置mapperXml生成路徑})// 策略配置.strategyConfig(builder -> {builder.addInclude(TABLE_NAME) // 設(shè)置需要生成的表名.addTablePrefix(TABLE_NAME_SUFFIX) // 設(shè)置過濾表前綴// Entity 策略配置.entityBuilder().enableLombok() //開啟 Lombok.enableFileOverride() // 覆蓋已生成文件.naming(NamingStrategy.underline_to_camel) //數(shù)據(jù)庫表映射到實(shí)體的命名策略:下劃線轉(zhuǎn)駝峰命.columnNaming(NamingStrategy.underline_to_camel) //數(shù)據(jù)庫表字段映射到實(shí)體的命名策略:下劃線轉(zhuǎn)駝峰命// Mapper 策略配置.mapperBuilder().enableFileOverride() // 覆蓋已生成文件// Service 策略配置.serviceBuilder().enableFileOverride() // 覆蓋已生成文件.formatServiceFileName("%sService") //格式化 service 接口文件名稱,%s進(jìn)行匹配表名,如 UserService.formatServiceImplFileName("%sServiceImpl") //格式化 service 實(shí)現(xiàn)類文件名稱,%s進(jìn)行匹配表名,如 UserServiceImpl// Controller 策略配置.controllerBuilder().enableRestStyle().formatFileName("%sControl").enableFileOverride() // 覆蓋已生成文件;}).execute();
}}
小結(jié)
“君子生非異也,善假于物也”。當(dāng)需要生產(chǎn)率的時(shí)候使用高效的工具,當(dāng)需要深度的時(shí)候去研究內(nèi)部實(shí)現(xiàn),合適的時(shí)候做合適的事,合適的技術(shù)實(shí)現(xiàn)合適的需求。
評論
圖片
表情
