Mybatis自動(dòng)生成實(shí)體類(lèi)和Mapper文件

Mybatis自動(dòng)生成實(shí)體類(lèi)和Mapper文件
我們?cè)谧鲰?xiàng)目時(shí),少不了用到Mybatis框架往枣,更少不了創(chuàng)建實(shí)體類(lèi)和書(shū)寫(xiě)sql語(yǔ)句伐庭,當(dāng)數(shù)據(jù)庫(kù)表很多時(shí),手動(dòng)創(chuàng)建會(huì)耗時(shí)耗力分冈,做著大量重復(fù)性的工作圾另,很讓人頭疼,下面我將介紹如何配置利用Mybatis插件自動(dòng)創(chuàng)建生成雕沉。

  1. 在pom.xml中添加如下依賴(lài):
<!--mysql-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.11</version>
    </dependency>
    <!--mybatis-->
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.3.2</version>
    </dependency>
<build>
    <finalName>springboot-mybatis</finalName>
  <plugins>
<!--設(shè)置生成實(shí)體類(lèi)和mapper的插件-->
        <plugin>
          <groupId>org.mybatis.generator</groupId>
          <artifactId>mybatis-generator-maven-plugin</artifactId>
          <version>1.3.2</version>
          <configuration>
            <verbose>true</verbose><!--允許移動(dòng)生成文件-->
            <overwrite>true</overwrite><!--允許自動(dòng)覆蓋文件-->
            <tableNames>tableName</tableNames> <!--你要生成的表名-->
          </configuration>
          <dependencies>
            <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>8.0.11</version>
            </dependency>
          </dependencies>
        </plugin>
  </plugins>
</build>
  1. 在resources目錄下創(chuàng)建generatorConfig.properties文件集乔,并添加如下的配置:
#生成實(shí)體類(lèi)的所需數(shù)據(jù)連接參數(shù)
driverClass= com.mysql.cj.jdbc.Driver
connectionURL=jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
username=root
password=123456
# 生成的實(shí)體類(lèi)和包的路徑
modelPackage=com.demo.tools.domain
daoPackage=com.demo.tools.persistence
  1. 在resources目錄下創(chuàng)建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>
    <!--導(dǎo)入屬性配置 -->
    <properties resource="generatorConfig.properties"/>

    <context id="mysqlTables" targetRuntime="MyBatis3">
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>

        <commentGenerator>
            <property name="type" value="DEFAULT"/>
            <!-- 是否去除自動(dòng)生成的注釋 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
            <!-- 這個(gè)元素用來(lái)去除指定生成的注釋中是否包含生成的日期 false:表示保護(hù) -->
            <!-- 如果生成日期,會(huì)造成即使修改一個(gè)字段坡椒,整個(gè)實(shí)體類(lèi)所有屬性都會(huì)發(fā)生變化扰路,不利于版本控制,所以設(shè)置為true -->
            <property name="suppressDate" value="true"/>
        </commentGenerator>
        <!--數(shù)據(jù)庫(kù)鏈接URL倔叼,用戶(hù)名汗唱、密碼 -->
        <jdbcConnection driverClass="${driverClass}"
                        connectionURL="${connectionURL}"
                        userId="${username}"
                        password="${password}">
        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 生成模型的包名和位置-->
        <javaModelGenerator targetPackage="${modelPackage}" targetProject="MAVEN">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成DAO的包名和位置-->
        <sqlMapGenerator targetPackage="${sqlMapPackage}" targetProject="MAVEN">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="${daoPackage}" targetProject="MAVEN">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <table tableName="tableName" domainObjectName="TableName" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>
    </context>
</generatorConfiguration>

注意在上面的"<table tableName='tableName'"....>把你要生成的表名換過(guò)去,比如你要生成person表,你就這樣寫(xiě):

 <table tableName="person" domainObjectName="Person" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>
  1. 在IDEA內(nèi)置的Terminal中輸入命令:mvn clean mybatis-generator:generate
    如圖,即可成功:


    success

然后到你的target目錄下,找到你要生成的文件,復(fù)制到你的項(xiàng)目里就好了!!!

image.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市丈攒,隨后出現(xiàn)的幾起案子哩罪,更是在濱河造成了極大的恐慌,老刑警劉巖巡验,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件际插,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡深碱,警方通過(guò)查閱死者的電腦和手機(jī)腹鹉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)敷硅,“玉大人功咒,你說(shuō)我怎么就攤上這事愉阎。” “怎么了力奋?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵榜旦,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我景殷,道長(zhǎng)溅呢,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任猿挚,我火速辦了婚禮咐旧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绩蜻。我一直安慰自己铣墨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布办绝。 她就那樣靜靜地躺著伊约,像睡著了一般。 火紅的嫁衣襯著肌膚如雪孕蝉。 梳的紋絲不亂的頭發(fā)上屡律,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音降淮,去河邊找鬼超埋。 笑死,一個(gè)胖子當(dāng)著我的面吹牛骤肛,可吹牛的內(nèi)容都是我干的纳本。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼腋颠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼繁成!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起淑玫,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤巾腕,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后絮蒿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體尊搬,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年土涝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了佛寿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖冀泻,靈堂內(nèi)的尸體忽然破棺而出常侣,到底是詐尸還是另有隱情,我是刑警寧澤弹渔,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布胳施,位于F島的核電站,受9級(jí)特大地震影響肢专,放射性物質(zhì)發(fā)生泄漏舞肆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一博杖、第九天 我趴在偏房一處隱蔽的房頂上張望椿胯。 院中可真熱鬧,春花似錦欧募、人聲如沸压状。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至镣丑,卻和暖如春舔糖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背莺匠。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工金吗, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人趣竣。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓摇庙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親遥缕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子卫袒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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