<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          mybatis-plus代碼快速生成【拿走即用】

          共 8476字,需瀏覽 17分鐘

           ·

          2024-03-28 15:30

          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>


          二、代碼生成
          1. 修改需生成的表名、前綴、模塊名、作者等信息(最外部的static常量),執(zhí)行main方法即可

          2. controller可生成rest風(fēng)格和普通風(fēng)格,相關(guān)配置在 .controllerBuilder() 后

          3. service相關(guān)自定義在.serviceBuilder() 后,比如修改默認(rèn)文件名

          4. 同理,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)合適的需求。


          瀏覽 51
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  伦中文亚洲 | 天堂a 资源 | 亚洲乱码一二三四区国产 | av电影久久 | 久久五月天婷婷 |