<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                > 本文標題為宣傳噱頭,前提為已啟動項目,數據庫連接正常,未計算其他時間,請勿計較 ## 使用后端代碼生成器-共兩步(以下主要演示JPA代碼生成) > 使用代碼生成器可不運行項目(自動生成表需要啟動項目),這里為啟動項目后生成代碼的演示 ### 第一步:輸入實體類名生成代碼 - 在 `cn.exrick.xboot.generator.XbootGenerator` 中輸入你的實體類名后運行主函數即可,當然可修改其他配置信息【若文件已存在,不會覆蓋生成】 <img src="https://ooo.0o0.ooo/2020/02/26/L5fdSJVK8pNjwYD.png" width="500px"/> - 運行后控制臺提示成功,即可在配置的包路徑下看到生成的代碼文件【若文件不存在自動創建包文件夾及代碼文件,若文件已存在不會覆蓋原文件】 <img src="https://ooo.0o0.ooo/2020/02/26/D4HE6ys93zIvRWx.png" /> - 若生成錯誤可在主函數中啟用刪除方法,重新運行主函數即可刪除剛生成的代碼 <img src="https://ooo.0o0.ooo/2020/02/26/iXsNFC981OAlGxQ.png" width="800px"/> - 此處文檔的演示已運行項目且已使用JRebel熱更新工具,生成代碼后稍等片刻或手動編譯觸發熱更新,查看相關日志,可以在數據庫中看到Hibernate映射DDL已幫我們建好的表,已包含`XBootBaseEntity`通用字段【表名根據實體類名駝峰法轉換,前綴`t_`可配置】 <img src="https://ooo.0o0.ooo/2020/02/26/QuvOfgAxp6t5j9T.png" width="600px"/> ### 第二步:輸入字段 - 找到剛生成的實體類,根據業務需求輸入需要的字段,`@ApiModelProperty`為swagger接口文檔注釋,還可以使用`@Column`注解做字段標注(詳見下方說明),若不想入庫的字段可以加上`@Transient`注解(詳見下節CRUD文檔) <img src="https://ooo.0o0.ooo/2020/02/26/i2hqEMYs69pjNcm.png" width="500px"/> - 稍等片刻熱更新后,我們可以看到數據庫中字段變化【具體表設計請根據實際需求優化修改,建議參考[數據庫設計規范章節文檔](http://www.hmoore.net/exrick/xboot/1022511)】 <img src="https://ooo.0o0.ooo/2020/02/26/DEvCpuPLG9TywHc.png" width="800px"/> - 到此一個實體類的基本增刪改接口就已經完成了,打開在線接口文檔即可進行測試 http://localhost:8888/doc.html ![QQ截圖20180826180920.png](https://ooo.0o0.ooo/2020/02/26/G1in5eZjbkEUWLT.png) ### 條件構造代碼生成 - 輸入實體類字段后再次運行`XbootGenerator`的主函數【文件存在不會覆蓋】,即可在控制臺看到生成的條件構造分頁獲取代碼,根據需要自行復制覆蓋以下代碼至實現方法ServiceImpl中 - String類型默認使用Like,`like %*%` - 其余類型默認使用Equal,`==` <img src=https://ooo.0o0.ooo/2020/02/26/8gowLhfT14CVqzc.png width=800/> ### 樹形結構相關代碼生成 - 常量`isTree`字段設為true后將自動生成樹形結構相關所需添加接口以及默認屬性字段,且含緩存設計 ``` java /** * 是否生成樹形結構相關接口 * 建議僅需修改 */ private static final Boolean isTree = false; ``` - 樹形結構可生成接口預覽 ![](https://ooo.0o0.ooo/2020/02/26/cl3PA1hMumxvHEs.png) ### JPA工作流相關代碼生成[【完整版】](http://xpay.exrick.cn/pay?xboot) - 常量`activiti`字段設為true后將自動生成工作流相關所需添加接口以及字段 ``` java /** * 是否生成關聯工作流相關接口 * 建議僅需修改 */ private static final Boolean activiti = false; ``` ### @Column注解補充說明 ~~~ unique屬性表示該字段是否為唯一標識,默認為false。如果表中有一個字段需要唯一標識,則既可以使用該標記,也可以使用@Table標記中的@UniqueConstraint。 nullable屬性表示該字段是否可以為null值,默認為true。 insertable屬性表示在使用“INSERT”腳本插入數據時,是否需要插入該字段的值。 updatable屬性表示在使用“UPDATE”腳本插入數據時,是否需要更新該字段的值。insertable和updatable屬性一般多用于只讀的屬性,例如主鍵和外鍵等。這些字段的值通常是自動生成的。 columnDefinition屬性表示創建表時,該字段創建的SQL語句,一般用于通過Entity生成表定義時使用。 table屬性表示當映射多個表時,指定表的表中的字段。默認值為主表的表名。有關多個表的映射將在本章的5.6小節中詳細講述。 length屬性表示字段的長度,當字段的類型為varchar時,該屬性才有效,默認為255個字符。 precision屬性和scale屬性表示精度,當字段類型為double時,precision表示數值的總長度,scale表示小數點所占的位數。 ~~~ ## 新增Mybatis-Plus后端代碼生成器 - 找到 `cn.exrick.xboot.generator.XbootMPGenerator`工具類,使用步驟同上,可自動生成相應`mapper.xml`空白文件至`resources/mapper`中 <img src="https://ooo.0o0.ooo/2019/04/11/5caf233d0ad6b.png" width="600px"/> - Mybatis-Plus生成器可生成接口預覽 <img src="https://ooo.0o0.ooo/2019/04/11/5caf5c87bd0c1.png" /> - 注意若修改dao對應包路徑出錯后,需到`MybatisPlusConfig`配置添加你的mapper路徑掃描 ``` java /** * dao對應包 【注意修改后需到cn.exrick.xboot.config.mybatisplus.MybatisPlusConfig配置你的mapper路徑掃描】 * (文件自動生成至該包下) */ private static final String daoPackage = "cn.exrick.xboot.modules.your.mapper"; ``` ### 已支持樹形結構相關代碼生成 - 常量`isTree`字段設為true后將自動生成樹形結構相關所需添加接口以及默認屬性字段,且含緩存設計 ``` java /** * 是否生成樹形結構相關接口 * 建議僅需修改 */ private static final Boolean isTree = false; ``` ### 條件構造代碼生成 - 輸入實體類字段后再次運行`XbootMPGenerator`的主函數【文件存在不會覆蓋】,即可在控制臺看到生成的條件構造分頁獲取代碼,根據需要自行復制添加以下代碼至控制層方法Controller中 - String類型默認使用Like,`like %*%` - 其余類型默認使用Equal,`==` <img src=https://ooo.0o0.ooo/2020/02/26/StIfUdFyvEcDCa6.png width=800/>
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看