Mybatis逆向工程的使用

mybatis.png

何謂逆向工程曲饱?mybatis需要程序員自己編寫SQL語句即彪,mybatis官方提供逆向工程街州,可以針對(duì)單表自動(dòng)生成mybatis執(zhí)行所需要的代碼(mapper.java,mapper.xml)等晴音。

其實(shí)官方提供了好多種逆向工程的方法:
Running MyBatis Generator

MyBatis Generator (MBG) can be run in the following ways:

(1)From the command prompt with an XML configuration
(2)As an Ant task with an XML configuration
(3)As a Maven Plugin
(4)From another Java program with an XML configuration
(5)From another Java program with a Java based configuration
(6)還可以通過eclipse的插件生成代碼

mybatis逆向工程開發(fā)文檔:逆向工程-文檔URL

mybatis逆向工程的DEMO的Github地址:逆向工程-Github

建議使用java程序方式(From another Java program with an XML configuration)刑顺,不依賴于開發(fā)工具氯窍。

第一步:新建一個(gè)JAVA Project饲常,配置mybatis所需要的XML文件以及導(dǎo)入所需要的jar包,搭建成如下圖所需的樣子:

項(xiàng)目初始結(jié)構(gòu)圖

第二步:配置XML文件狼讨,在GeneratorConfig.xml文件中寫入如下代碼:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <context id="MybatisGenerator" targetRuntime="mybatis3">
        <commentGenerator>
            <!-- 是否去除自動(dòng)生成的注釋 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!-- 數(shù)據(jù)庫連接信息:驅(qū)動(dòng)類 贝淤,連接地址,用戶名政供,密碼-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" 
            connectionURL="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC" 
            userId="root" password="">
        </jdbcConnection>
        
        <!-- 默認(rèn)值 -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        
        <!-- 生成的實(shí)體類的存放位置 -->
        <javaModelGenerator targetPackage="com.mxf.pojo" targetProject="./src">
            <!-- enableSubPackages:是否讓schema作為包的后綴 -->
            <property name="enableSubPackages" value="true"/>
            <!-- 從數(shù)據(jù)庫返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        
        <!-- 生成的Mapper映射文件(XML)的存放位置 -->
        <sqlMapGenerator targetPackage="com.mxf.mapper" targetProject="./src">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        
        <!-- 生成的mapper接口(JAVA文件)的存放位置 -->
        <javaClientGenerator targetPackage="com.mxf.mapper" type="XMLMAPPER" targetProject="./src">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        
        <!-- 指定數(shù)據(jù)庫表 -->
        <table tableName="courses"></table>
        <table tableName="users"></table>
        <table tableName="teachers"></table>
        
    </context>
</generatorConfiguration>

第三步:書寫java代碼播聪,MyGenerator 類中的代碼如下所示:

public class MyGenerator {
    public void generate() throws Exception{
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //指定逆向工程配置文件
        File configFile = new File("GeneratorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
    }
    
    public static void main(String []args) throws Exception {
        try {
            MyGenerator myGenerator = new MyGenerator();
            myGenerator.generate();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

第四步:運(yùn)行MyGenerator類中的main函數(shù)就可以生成需要的代碼了,無任何輸出布隔,在項(xiàng)目名上右鍵Refresh(刷新)就可以看見了离陶,生成后的項(xiàng)目樣子如下圖所示:

完成后的項(xiàng)目結(jié)構(gòu)圖

至此就生成了所需要的東西,下面附上本項(xiàng)目的github地址:

Mybatis逆向工程代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末衅檀,一起剝皮案震驚了整個(gè)濱河市招刨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哀军,老刑警劉巖沉眶,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異杉适,居然都是意外死亡谎倔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門猿推,熙熙樓的掌柜王于貴愁眉苦臉地迎上來片习,“玉大人,你說我怎么就攤上這事蹬叭√赫欤” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵具垫,是天一觀的道長(zhǎng)侈离。 經(jīng)常有香客問我,道長(zhǎng)筝蚕,這世上最難降的妖魔是什么卦碾? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮起宽,結(jié)果婚禮上洲胖,老公的妹妹穿的比我還像新娘。我一直安慰自己坯沪,他們只是感情好绿映,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般叉弦。 火紅的嫁衣襯著肌膚如雪丐一。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天淹冰,我揣著相機(jī)與錄音库车,去河邊找鬼。 笑死樱拴,一個(gè)胖子當(dāng)著我的面吹牛柠衍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晶乔,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼珍坊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了正罢?” 一聲冷哼從身側(cè)響起垫蛆,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎腺怯,沒想到半個(gè)月后袱饭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呛占,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年虑乖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晾虑。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疹味,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出帜篇,到底是詐尸還是另有隱情糙捺,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布笙隙,位于F島的核電站洪灯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏竟痰。R本人自食惡果不足惜签钩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望坏快。 院中可真熱鬧铅檩,春花似錦、人聲如沸莽鸿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至兔沃,卻和暖如春蒋得,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粘拾。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工窄锅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留创千,地道東北人缰雇。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像追驴,于是被迫代替她去往敵國(guó)和親械哟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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

  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis 殿雪? MyBatis 是支持定制化 SQL暇咆、存儲(chǔ)過程以及高級(jí)映射的優(yōu)秀的...
    笨鳥慢飛閱讀 5,523評(píng)論 0 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)丙曙,斷路器爸业,智...
    卡卡羅2017閱讀 134,672評(píng)論 18 139
  • 覚明自參加無戒寫作21天寫作訓(xùn)練營(yíng)以來扯旷,加之外緣內(nèi)助齊聚,將往事歷歷披露索抓,在人看來似有走火入魔之狀钧忽。然身在紅塵中,...
    覚明閱讀 876評(píng)論 4 7
  • 書是什么逼肯?它是人類思想的集中體現(xiàn)耸黑,它是歲月所抹不滅地思想的累積。它是通向上個(gè)時(shí)代的捷徑篮幢,也是通往下個(gè)時(shí)代的鑰匙大刊。 ...
    叁與肆閱讀 166評(píng)論 0 0
  • 1.添加fmdb 點(diǎn)擊這里下載fmdb 在項(xiàng)目中TARGETS->Build Phases ->Link Bina...
    iOS_愛OS閱讀 6,720評(píng)論 2 21