Mybatis Plus外掛三種方式的逆向工程的使用
本文原始碼:GitHub·點這裡 || GitEE·點這裡
一、逆向工程簡介
在Java開發中,持久層最常用的框架就是mybatis,該框架需要編寫sql語句,mybatis官方提供逆向工程,可以把資料表自動生成執行所需要的基礎程式碼,例如: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"/> <!-- 是否新增資料表中欄位的註釋 true:是 : false:否 --> <property name="addRemarkComments" value="true"/> </commentGenerator> <!--資料庫的資訊:驅動類、連線地址、使用者名稱、密碼 --> <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> <!-- 指定資料庫表 --> <table schema="" tableName="dt_defined_log" domainObjectName="DefinedLog"/> </context> </generatorConfiguration>
3、啟動類
讀取配置檔案,並執行。
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、核心啟動類
這裡的配置可以基於很多自定義的策略,案例生成的程式碼已經傳到倉庫,可以自行下載檢視。
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); // 資料來源配置 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); // 駝峰轉連字元 strategy.setControllerMappingHyphenStyle(true); //表和字首處理 strategy.setInclude("dt_defined_log".split(",")); String[] tablePre = new String[]{"dt_"}; strategy.setTablePrefix(tablePre); autoGenerator.setStrategy(strategy); // 執行,以上相關引數可以基於動態輸入獲取 autoGenerator.execute(); } }
該方式是當前mybatis框架最流行的開發方式,程式碼會簡潔很多。
四、外掛工具
1、配置資料庫
這裡選擇MySQL資料來源,後續根據提示需要下載驅動配置。
2、連線配置
Url地址,賬號,密碼,獲取連線。
3、外掛使用
這裡選擇的是安裝EasyCode外掛。
根據配置,生成逆向工程檔案,整體思路和上述兩種方式一致。
五、原始碼地址
GitHub·地址https://github.com/cicadasmile/data-manage-parent
GitEE·地址https://gitee.com/cicadasmile/data-manage-parent
到此這篇關於Mybatis Plus外掛三種方式的逆向工程的使用的文章就介紹到這了,更多相關Mybatis Plus 逆向工程內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!