利用MyBatisplus自動(dòng)化構(gòu)建工具

使用MyBatisplus自動(dòng)化構(gòu)建項(xiàng)目

為什么要用這個(gè)怒见?

  • 方便
  • 因?yàn)橹澳欠N方式讓我用起來(lái)不爽了:mybatis逆向工程(MyBatis Generator)
  • 能緊密的貼合mybatis卿堂,并且MyBatisplus的很多api用起來(lái)也更加方便饲握,能大大提高開發(fā)效率

開始使用

0、構(gòu)建一個(gè)普通的Maven工程削解,這里就不再贅述了

1、導(dǎo)包:導(dǎo)入需要使用到的依賴

<dependencies>
    <!-- mybatisplus生成工具需要的依賴 -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.0.6</version>
        <scope>compile</scope>
    </dependency>
    <!-- 模板引擎 -->
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity</artifactId>
        <version>1.7</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
        <version>2.0</version>
    </dependency>
    <!-- 模板依賴了日志,所以需要該包 -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>

    <!-- Spring依賴母蛛,否則@Service等注解會(huì)報(bào)錯(cuò) -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring</artifactId>
        <version>2.5.6.SEC03</version>
    </dependency>

    <!-- 數(shù)據(jù)庫(kù)連接依賴-->
    <!--添加MySql依賴 -->
    <!--
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.42</version>
    </dependency>
    -->
    <!-- 添加Oracle依賴 -->
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>

    <!-- Mybatis Plus Dependencies -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus</artifactId>
        <version>3.0.7.1</version>
    </dependency>

</dependencies>

此處要注意的一點(diǎn)就是:因?yàn)槭褂玫氖荕yBatisplus的自動(dòng)化構(gòu)建工具,故在引入的依賴中乳怎,不再使用mybatis的依賴包:

<!--添加Mybatis依賴 配置mybatis的一些初始化的東西-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>

而是需要使用MyBatisplus的依賴包:

<!-- Mybatis Plus Dependencies -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.0.7.1</version>
</dependency>

2彩郊、自動(dòng)化構(gòu)建工具類

package com.java.mmzsit;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.lang.reflect.Field;

/**
 * @author :mmzsit
 * @description:MyBatisplus自動(dòng)化構(gòu)建工具
 * @date :2019/6/14 14:45
 */

public class generator {
    public static void main(String[] args) throws Exception {
        AutoGenerator mpg = new AutoGenerator();
        // TODO 此處務(wù)必記得修改
        String outputDir = "D:\\WorkspaceGit\\mybatisPlus-generator\\src\\main\\java";

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        gc.setOutputDir(outputDir);
        gc.setFileOverride(true);
        gc.setActiveRecord(true);
        // XML 二級(jí)緩存
//        gc.setEnableCache(true);
        // XML ResultMap
        gc.setBaseResultMap(true);
        // XML columList
        gc.setBaseColumnList(true);
        gc.setAuthor("mmzsit");

        // 自定義文件命名前弯,注意 %s 會(huì)自動(dòng)填充表實(shí)體屬性!
        gc.setMapperName("I%sMapper");
        gc.setXmlName("%sMapper");
        gc.setServiceName("I%sService");
        gc.setServiceImplName("%sServiceImpl");
        gc.setControllerName("%sController");
        mpg.setGlobalConfig(gc);

        // 數(shù)據(jù)源配置mysql
//        DataSourceConfig dsc = new DataSourceConfig();
//        dsc.setDbType(DbType.MYSQL);
//        dsc.setDriverName("com.mysql.jdbc.Driver");
//        dsc.setUrl("jdbc:mysql://localhost:3306/itresources?useUnicode=true&amp;characterEncoding=UTF-8&amp;generateSimpleParameterMetadata=true");
//        dsc.setUsername("root");
//        dsc.setPassword("123456");
//        mpg.setDataSource(dsc);
        // 數(shù)據(jù)源配置oracle
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setDbType(DbType.ORACLE);
        dsc.setDriverName("oracle.jdbc.OracleDriver");
        dsc.setUrl("jdbc:oracle:thin:@localhost:1521/ORCL");
        dsc.setUsername("mmzsit");
        dsc.setPassword("mmzsit");
        mpg.setDataSource(dsc);


        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        // 表名生成策略
        strategy.setNaming(NamingStrategy.underline_to_camel);
        // 需要生成的表,大小寫一定要正確
        strategy.setInclude(new String[]{"TESTDATAS"});
        // 排除生成的表
//        strategy.setExclude(new String[]{"order"});
        Field field = strategy.getClass().getDeclaredField("logicDeleteFieldName");
        field.setAccessible(true);
        field.set(strategy, "logic_del");
        mpg.setStrategy(strategy);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.java.mmzsit");
//        pc.setModuleName("dc");
        mpg.setPackageInfo(pc);

        // 執(zhí)行生成
        mpg.execute();
        System.out.println("自動(dòng)構(gòu)建完成秫逝!");
    }

}

運(yùn)行上面的java代碼恕出,即可完成一次自動(dòng)化構(gòu)建;

3违帆、值得注意的一點(diǎn)

在.yml配置文件中浙巫,也不再使用:

mybatis:
  # mapper映射文件
  mapper-locations: classpath:mapper/*Mapper.xml

而是使用的配置寫法:

mybatis-plus:
  # mapper映射文件
  mapper-locations: classpath:mapper/*Mapper.xml

構(gòu)建完成后,生成代碼效果圖

image

總結(jié)

相對(duì)而言刷后,使用這種方式自動(dòng)化構(gòu)建方便快捷的畴;而且后期維護(hù)也很簡(jiǎn)易。但唯一不舒服的就是生成的實(shí)體類還是使用的get尝胆、set的方式構(gòu)建的丧裁,而不是使用lombok構(gòu)建的。


代碼已經(jīng)提交github:mybatisPlus-generator


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末含衔,一起剝皮案震驚了整個(gè)濱河市煎娇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贪染,老刑警劉巖缓呛,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異抑进,居然都是意外死亡强经,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門寺渗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)匿情,“玉大人,你說(shuō)我怎么就攤上這事信殊【娉疲” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵涡拘,是天一觀的道長(zhǎng)玲躯。 經(jīng)常有香客問(wèn)我,道長(zhǎng)鳄乏,這世上最難降的妖魔是什么跷车? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮橱野,結(jié)果婚禮上朽缴,老公的妹妹穿的比我還像新娘。我一直安慰自己水援,他們只是感情好密强,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布茅郎。 她就那樣靜靜地躺著,像睡著了一般或渤。 火紅的嫁衣襯著肌膚如雪系冗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天薪鹦,我揣著相機(jī)與錄音掌敬,去河邊找鬼。 笑死距芬,一個(gè)胖子當(dāng)著我的面吹牛涝开,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播框仔,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼舀武,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了离斩?” 一聲冷哼從身側(cè)響起银舱,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎跛梗,沒(méi)想到半個(gè)月后寻馏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡核偿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年诚欠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漾岳。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡轰绵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出尼荆,到底是詐尸還是另有隱情左腔,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布捅儒,位于F島的核電站液样,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏巧还。R本人自食惡果不足惜鞭莽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望麸祷。 院中可真熱鬧澎怒,春花似錦、人聲如沸摇锋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)荸恕。三九已至乖酬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間融求,已是汗流浹背咬像。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留生宛,地道東北人县昂。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像陷舅,于是被迫代替她去往敵國(guó)和親倒彰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容