使用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插件的配置:
<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>
3.在resources包下新建一個(gè)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> <!-- 指定數(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>
這里需要注意的有兩點(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)行.
如果能看到BUILD SUCCESS,那就證明操作成功了,去你指定的src目錄下查看生成的代碼即可.