使用mybatis-generator插件可以很輕松的實(shí)現(xiàn)mybatis的逆向工程,即,能通過(guò)表結(jié)構(gòu)自動(dòng)生成對(duì)應(yīng)的java類(lèi)及mapper文件,可以大大提高工作效率,并且它提供了很多自定義的設(shè)置可以應(yīng)對(duì)不同的需求,最近做公司新開(kāi)的一個(gè)項(xiàng)目就是使用到了它,簡(jiǎn)單粗暴.

  下面介紹詳細(xì)的使用步驟和注意事項(xiàng),我的項(xiàng)目環(huán)境是idea+maven+ssm,但是我新建了一個(gè)空的maven項(xiàng)目專(zhuān)門(mén)用來(lái)生成java代碼,然后再把它有選擇的copy到自己的項(xiàng)目環(huán)境中.

  1.新建一個(gè)空的webapp類(lèi)型的maven項(xiàng)目.

  2.在pom.xml文件中加入mybatis-generator插件的配置:

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷(xiāo)培訓(xùn)

<build>
    <plugins>
      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.2</version>
        <configuration>
          <verbose>true</verbose>
          <overwrite>true</overwrite>
        </configuration>
      </plugin>
    </plugins></build>

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷(xiāo)培訓(xùn)

  3.在resources包下新建一個(gè)generatorConfig.xml:

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷(xiāo)培訓(xùn)

<?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>
    <!-- 指定數(shù)據(jù)庫(kù)驅(qū)動(dòng)的地址 這是我mac下的絕對(duì)路徑-->
    <classPathEntry location="/Users/wyg/personal/視頻教程/generatorSqlmapCustom/lib/mysql-connector-java-5.1.28-bin.jar" />
    <!--一個(gè)數(shù)據(jù)庫(kù) 對(duì)應(yīng)一個(gè)context-->
    <!--
    context:生成一組對(duì)象的環(huán)境
    id:必選,上下文id,用于在生成錯(cuò)誤時(shí)提示
    defaultModelType:指定生成對(duì)象的樣式
        1,conditional:類(lèi)似hierarchical;
        2,flat:所有內(nèi)容(主鍵,blob)等全部生成在一個(gè)對(duì)象中;
        3,hierarchical:主鍵生成一個(gè)XXKey對(duì)象(key class),Blob等單獨(dú)生成一個(gè)對(duì)象,其他簡(jiǎn)單屬性在一個(gè)對(duì)象中(record class)
    targetRuntime:
        1,MyBatis3:默認(rèn)的值,生成基于MyBatis3.x以上版本的內(nèi)容,包括XXXBySample;
        2,MyBatis3Simple:類(lèi)似MyBatis3,只是不生成XXXBySample;
    introspectedColumnImpl:類(lèi)全限定名,用于擴(kuò)展MBG-->
    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自動(dòng)生成的注釋 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--數(shù)據(jù)庫(kù)連接的信息:驅(qū)動(dòng)類(lèi)、連接地址、用戶名、密碼 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/shop" userId="root"
            password="123">
        </jdbcConnection>
        <!-- 默認(rèn)false,把JDBC DECIMAL 和 NUMERIC 類(lèi)型解析為 Integer,為 true時(shí)把JDBC DECIMAL 和 
            NUMERIC 類(lèi)型解析為java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- targetProject:生成PO類(lèi)的位置 -->
        <javaModelGenerator targetPackage="com.ximalaya.shop.data1"
            targetProject="src/main/java" >
            <!-- enableSubPackages:是否讓schema作為包的后綴 -->
            <property name="enableSubPackages" value="false" />
            <!-- 從數(shù)據(jù)庫(kù)返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="com.ximalaya.shop.mapper1"
            targetProject="src/main/java">
            <!-- enableSubPackages:是否讓schema作為包的后綴 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!-- targetPackage:mapper接口生成的位置 -->
        <!-- 客戶端代碼,生成易于使用的針對(duì)Model對(duì)象和XML配置文件 的代碼
                type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper對(duì)象
                type="MIXEDMAPPER",生成基于注解的Java Model 和相應(yīng)的Mapper對(duì)象
                type="XMLMAPPER",生成SQLMap XML文件和獨(dú)立的Mapper接口        -->
        <javaClientGenerator type="ANNOTATEDMAPPER"
            targetPackage="com.ximalaya.shop.mapper1"
            targetProject="src/main/java">
            <!-- enableSubPackages:是否讓schema作為包的后綴 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <!-- 指定數(shù)據(jù)庫(kù)表 -->
        <table schema="" tableName="tb_order">
            <property name="modelOnly" value="false"/>
        </table>
        <table schema="" tableName="tb_order_product">
            <property name="modelOnly" value="false"/>
        </table>
        <table schema="" tableName="tb_order_status">
            <property name="modelOnly" value="false"/>
        </table>
    </context></generatorConfiguration>

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷(xiāo)培訓(xùn)

  這里需要注意的有兩點(diǎn),第一個(gè)就是配置好自己的數(shù)據(jù)庫(kù)驅(qū)動(dòng),我本來(lái)將mysql-connector-java-5.1.28-bin.jar直接引入到項(xiàng)目中,然后就忽略了這個(gè)標(biāo)簽,但是運(yùn)行失敗,找不到數(shù)據(jù)庫(kù)驅(qū)動(dòng),然后我加上該標(biāo)簽,指向文件中的mysql-connector-java-5.1.28-bin.jar的絕對(duì)路徑,就好了.第二個(gè)就是javaClientGenerator標(biāo)簽里的type,在注釋中有詳細(xì)解釋,這里可以根據(jù)你實(shí)際的需求生成不同類(lèi)型的java代碼.

  配置完之后,直接在當(dāng)前項(xiàng)目下輸入命令行:mvn mabatis-generator:generate,注意我的項(xiàng)目名稱(chēng)是shopTest所以在該目錄下運(yùn)行.

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷(xiāo)培訓(xùn)  

  如果能看到BUILD SUCCESS,那就證明操作成功了,去你指定的src目錄下查看生成的代碼即可.