代碼生成
在企業軟件開發過程中,大多數時間都是面向數據庫表的增刪改查開發。通過通用的增刪改查代碼生成器,可以有效的提高效率,降低成本;把有規則的重複性勞動讓機器完成,解放開發人員。
MyBatis Generator
- MyBatis Generator 是 MyBatis 提供的一個代碼生成工具
可以幫我們生成表對應的持久化對象(po)、操作數據庫的接口(dao)、CRUD sql 的 xml(mapper)。
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>${last.version}</version>
<configuration>
<!--mybatis的代碼生成器的配置策略文件-->
<configurationFile>mybatis-generator-config.xml</configurationFile>
</configuration>
</plugin>
- 配置代碼生成相關的策略文件 mybatis-generator-config.xml
<generatorConfiguration>
<context>
<!-- jdbc連接 -->
<jdbcConnection> ... </jdbcConnection>
<!-- schema為數據庫名,tableName為對應的數據庫表名 -->
<table> ... </table>
<!-- 註釋 -->
<commentGenerator> ... </commentGenerator>
<!-- 類型轉換 -->
<javaTypeResolver> ... </javaTypeResolver>
<!-- 生成實體類配置 -->
<javaModelGenerator> ... </javaModelGenerator>
<!-- 生成Mapper.xml文件配置 -->
<sqlMapGenerator> ... </sqlMapGenerator>
<!-- 生成Mapper.java 接口-->
<javaClientGenerator> ... </javaClientGenerator>
</context>
</generatorConfiguration>
- 缺點
- 每次代碼生成需要配置對應的 mybatis-generator-config 通過 XML 的形式配置相關生成屬性和規則
- 無法生成通用的 Controller、Service 類,無法自定義模板等
綜上兩點: mybatis-generator 使用非常不方便
EasyCode
EasyCode 是基於 IntelliJ IDEA Ultimate 版開發的一個代碼生成插件,主要通過自定義模板(基於 velocity)來生成各種你想要的代碼。通常用於生成 Entity、Dao、Service、Controller。如果你動手能力強還可以用於生成 HTML、JS、PHP 等代碼。理論上來說只要是與數據有關的代碼都是可以生成的。
快速上手
- 安裝 IDEA EasyCode 插件。 支持在線安裝,插件市場搜索安裝即可。
- 使用 IDEA 連接目標數據源
- 選擇目標表進行代碼生成
進階配置
如上即可完成基於單表的增刪改查方法,包括 Controller、Service、Mapper、Entity。 但默認生成是基於原生 MyBatis 的通用文件,不適用於 MyBatisPlus、通用 Mapper 等 Mybatis 擴展插件。我們可以通過編輯 EasyCode 的模板文件,來動態添加我們的生成規則,並且可以導出給其他人使用。
- 甚至於可以配置新的模板生成前端頁面,比如基於 Element 的增刪改查
總結
- 當然很多腳手架都會內置代碼生成功能。 例如 pig 的開發平臺模塊 ,通過自定義模板引擎形式實現代碼生成,能夠更好的整合現有業務提開發效率。