Mybatis Plus插件三種方式的逆向工程的使用
本文源碼:GitHub·點這里 || GitEE·點這里
一、逆向工程簡介
在Java開發(fā)中,持久層最常用的框架就是mybatis,該框架需要編寫sql語句,mybatis官方提供逆向工程,可以把數(shù)據(jù)表自動生成執(zhí)行所需要的基礎代碼,例如:mapper接口,sql映射文件,pojo實體類等,避免基礎代碼維護的繁雜過程。

在實際的使用中,常用的逆向工程方式如上,mybatis框架,mybatis-plus框架,插件方式。
二、Mybatis方式
1、基礎描述
基于xml配置的方式,生成mybatis基礎代碼,包括mapper接口,Mapper映射文件,pojo實體類,PojoExample條件工具類。
2、配置文件
注意這里的targetProject需要配置自定義路徑位置。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <context id="testTables" targetRuntime="MyBatis3"> <commentGenerator> <!-- 是否去除自動生成的注釋 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> <property name="suppressDate" value="false"/> <!-- 是否添加數(shù)據(jù)表中字段的注釋 true:是 : false:否 --> <property name="addRemarkComments" value="true"/> </commentGenerator> <!--數(shù)據(jù)庫的信息:驅(qū)動類、連接地址、用戶名、密碼 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/defined-log?tinyInt1isBit=false" userId="root" password="123456"> </jdbcConnection> <!-- 默認false,把JDBC decimal 和 numeric 類型解析為 Integer 設置true時把JDBC decimal 和 numeric 類型解析為BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成POJO類的位置 --> <javaModelGenerator targetPackage="com.generator.mybatis.pojo" targetProject="存放路徑"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成Mapper映射文件的位置 --> <sqlMapGenerator targetPackage="com.generator.mybatis.xml" targetProject="存放路徑"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 生成Mapper接口的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.generator.mybatis.mapper" targetProject="存放路徑"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 指定數(shù)據(jù)庫表 --> <table schema="" tableName="dt_defined_log" domainObjectName="DefinedLog"/> </context> </generatorConfiguration>
3、啟動類
讀取配置文件,并執(zhí)行。
public class GeneratorMybatis {
public void generator() throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = Resources.getResourceAsFile("generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback, warnings);
myBatisGenerator.generate(null);
}
public static void main(String[] args) throws Exception {
try {
GeneratorMybatis generatorMybatis = new GeneratorMybatis();
generatorMybatis.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
三、MybatisPlus方式
1、基礎描述
MybatisPlus相比Mybatis提供更多增強的能力,單表操作基本都封裝好了,所以生成的mapper映射文件簡潔很多,需要注意ServiceImpl關鍵類和BaseMapper接口。
2、核心啟動類
這里的配置可以基于很多自定義的策略,案例生成的代碼已經(jīng)傳到倉庫,可以自行下載查看。
public class GeneratorMybatisPlus {
public static void main(String[] args) {
// 代碼生成器
AutoGenerator autoGenerator = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
//生成文件的輸出目錄
String path="存放路徑";
globalConfig.setOutputDir(path);
// Author設置作者
globalConfig.setAuthor("mybatis-plus");
// 文件覆蓋
globalConfig.setFileOverride(true);
// 生成后打開文件
globalConfig.setOpen(false);
// 自定義文件名風格,%s自動填充表實體屬性
globalConfig.setMapperName("%sMapper");
globalConfig.setXmlName("%sMapper");
globalConfig.setServiceName("%sDao");
globalConfig.setServiceImplName("%sDaoImpl");
globalConfig.setEntityName("%s");
globalConfig.setControllerName("%sController");
autoGenerator.setGlobalConfig(globalConfig);
// 數(shù)據(jù)源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setTypeConvert(new MySqlTypeConvert());
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/defined-log?tinyInt1isBit=false");
dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("123456");
autoGenerator.setDataSource(dataSourceConfig);
// 包名配置
PackageConfig packageConfig = new PackageConfig();
// 父包和子包名分開處理
packageConfig.setParent("com.generator.mybatis.plus");
packageConfig.setController("web");
packageConfig.setEntity("pojo");
packageConfig.setMapper("mapper");
packageConfig.setService("dao");
packageConfig.setServiceImpl("dao.impl");
autoGenerator.setPackageInfo(packageConfig);
// 生成策略配置
StrategyConfig strategy = new StrategyConfig();
//設置命名格式
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// 實體是否為lombok模型,默認 false
strategy.setEntityLombokModel(true);
//生成 @RestController 控制器
strategy.setRestControllerStyle(true);
// 駝峰轉(zhuǎn)連字符
strategy.setControllerMappingHyphenStyle(true);
//表和前綴處理
strategy.setInclude("dt_defined_log".split(","));
String[] tablePre = new String[]{"dt_"};
strategy.setTablePrefix(tablePre);
autoGenerator.setStrategy(strategy);
// 執(zhí)行,以上相關參數(shù)可以基于動態(tài)輸入獲取
autoGenerator.execute();
}
}
該方式是當前mybatis框架最流行的開發(fā)方式,代碼會簡潔很多。
四、插件工具
1、配置數(shù)據(jù)庫
這里選擇MySQL數(shù)據(jù)源,后續(xù)根據(jù)提示需要下載驅(qū)動配置。

2、連接配置

Url地址,賬號,密碼,獲取連接。
3、插件使用
這里選擇的是安裝EasyCode插件。

根據(jù)配置,生成逆向工程文件,整體思路和上述兩種方式一致。
五、源代碼地址
GitHub·地址https://github.com/cicadasmile/data-manage-parent
GitEE·地址https://gitee.com/cicadasmile/data-manage-parent
到此這篇關于Mybatis Plus插件三種方式的逆向工程的使用的文章就介紹到這了,更多相關Mybatis Plus 逆向工程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
新版本IntelliJ IDEA 構(gòu)建maven,并用Maven創(chuàng)建一個web項目(圖文教程)
這篇文章主要介紹了新版本IntelliJ IDEA 構(gòu)建maven,并用Maven創(chuàng)建一個web項目的圖文教程,需要的朋友可以參考下2018-01-01
springMVC在restful風格的性能優(yōu)化方案
這篇文章主要介紹了springMVC在restful風格的性能優(yōu)化方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
springboot如何讀取application.yml文件
這篇文章主要介紹了springboot如何讀取application.yml文件的方法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下2020-12-12
Spring中的ApplicationRunner接口的使用詳解
這篇文章主要介紹了Spring中的ApplicationRunner接口的使用詳解,ApplicationRunner使用起來很簡單,只需要實現(xiàn)CommandLineRunner或者ApplicationRunner接口,重寫run方法就行,需要的朋友可以參考下2023-11-11
Spring Boot 整合 Mockito提升Java單元測試的高效實踐案例
Mockito與Spring Boot的整合為Java開發(fā)者提供了一套完整的解決方案,使得單元測試更為精準、高效,從而確保了代碼質(zhì)量、降低了維護成本,并促進了項目的持續(xù)集成與交付,感興趣的朋友跟隨小編一起看看吧2024-04-04

