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

MyBatis-Plus(簡稱 MP)是一個 MyBatis的增強工具塘淑,在 MyBatis 的基礎上只做增強不做改變奉芦,為簡化開發(fā)喝峦、提高效率而生。MP提供兩套生成方法,本著大道至簡的理論批糟,本文重點介紹一種快速生成的方法赚爵,一個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風格和普通風格,相關配置在 .controllerBuilder()
  3. service相關自定義在.serviceBuilder() 后斑举,比如修改默認文件名
  4. 同理搅轿,mapper和entity的相關配置分別緊跟.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";

    /**
     * 表前綴,生成代碼時可忽略
     */
    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) // 設置作者
                            .commentDate("yyyy-MM-dd hh:mm:ss")   //注釋日期
//                            .outputDir(System.getProperty("user.dir") + "/src/main/java") // 指定輸出目錄
                            .outputDir(OUT_PATH) // 指定輸出目錄
                            .disableOpenDir() //禁止打開輸出目錄富玷,默認打開
                    ;
                })
                // 包配置
                .packageConfig(builder -> {
                    builder.parent("com.mos.bzn." + MODULE_PACKAGE).mapper("dao"); // 設置父包名
//                            .pathInfo(Collections.singletonMap(OutputFile.xml, "D:\\genCode\\mappers")); // 設置mapperXml生成路徑
                })
                // 策略配置
                .strategyConfig(builder -> {
                    builder.addInclude(TABLE_NAME) // 設置需要生成的表名
                            .addTablePrefix(TABLE_NAME_SUFFIX) // 設置過濾表前綴
                            // Entity 策略配置
                            .entityBuilder()
                            .enableLombok() //開啟 Lombok
                            .enableFileOverride() // 覆蓋已生成文件
                            .naming(NamingStrategy.underline_to_camel)  //數(shù)據(jù)庫表映射到實體的命名策略:下劃線轉駝峰命
                            .columnNaming(NamingStrategy.underline_to_camel)    //數(shù)據(jù)庫表字段映射到實體的命名策略:下劃線轉駝峰命
                            // Mapper 策略配置
                            .mapperBuilder()
                            .enableFileOverride() // 覆蓋已生成文件
                            // Service 策略配置
                            .serviceBuilder()
                            .enableFileOverride() // 覆蓋已生成文件
                            .formatServiceFileName("%sService") //格式化 service 接口文件名稱璧坟,%s進行匹配表名,如 UserService
                            .formatServiceImplFileName("%sServiceImpl") //格式化 service 實現(xiàn)類文件名稱凌彬,%s進行匹配表名沸柔,如 UserServiceImpl
                            // Controller 策略配置
                            .controllerBuilder()
                            .enableRestStyle()
                            .formatFileName("%sControl")
                            .enableFileOverride() // 覆蓋已生成文件
                    ;
                })
                .execute();

    }
}

小結

“君子生非異也,善假于物也”。當需要生產(chǎn)率的時候使用高效的工具铲敛,當需要深度的時候去研究內部實現(xiàn)褐澎,合適的時候做合適的事,合適的技術實現(xiàn)合適的需求伐蒋。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末工三,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子先鱼,更是在濱河造成了極大的恐慌俭正,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡沉桌,警方通過查閱死者的電腦和手機婴氮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事∩銮耄” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵更胖,是天一觀的道長铛铁。 經(jīng)常有香客問我,道長却妨,這世上最難降的妖魔是什么饵逐? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮彪标,結果婚禮上梳毙,老公的妹妹穿的比我還像新娘。我一直安慰自己捐下,他們只是感情好账锹,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布萌业。 她就那樣靜靜地躺著,像睡著了一般奸柬。 火紅的嫁衣襯著肌膚如雪生年。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天廓奕,我揣著相機與錄音抱婉,去河邊找鬼。 笑死桌粉,一個胖子當著我的面吹牛蒸绩,可吹牛的內容都是我干的。 我是一名探鬼主播铃肯,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼患亿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了押逼?” 一聲冷哼從身側響起步藕,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎挑格,沒想到半個月后咙冗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡漂彤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年雾消,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挫望。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡仪或,死狀恐怖,靈堂內的尸體忽然破棺而出士骤,到底是詐尸還是另有隱情,我是刑警寧澤蕾域,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布拷肌,位于F島的核電站,受9級特大地震影響旨巷,放射性物質發(fā)生泄漏巨缘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一采呐、第九天 我趴在偏房一處隱蔽的房頂上張望若锁。 院中可真熱鬧,春花似錦斧吐、人聲如沸又固。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仰冠。三九已至乏冀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間洋只,已是汗流浹背辆沦。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留识虚,地道東北人肢扯。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像担锤,于是被迫代替她去往敵國和親蔚晨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內容