使用mybatis-generator插件能夠很輕鬆的實現mybatis的逆向工程,即,能經過表結構自動生成對應的java類及mapper文件,能夠大大提升工做效率,而且它提供了不少自定義的設置能夠應對不一樣的需求,最近作公司新開的一個項目就是使用到了它,簡單粗暴.java
下面介紹詳細的使用步驟和注意事項,個人項目環境是idea+maven+ssm,可是我新建了一個空的maven項目專門用來生成java代碼,而後再把它有選擇的copy到本身的項目環境中.mysql
1.新建一個空的webapp類型的maven項目.web
2.在pom.xml文件中加入mybatis-generator插件的配置:sql
<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包下新建一個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> <!-- 指定數據庫驅動的地址 這是我mac下的絕對路徑--> <classPathEntry location="/Users/wyg/personal/視頻教程/generatorSqlmapCustom/lib/mysql-connector-java-5.1.28-bin.jar" /> <!--一個數據庫 對應一個context--> <!-- context:生成一組對象的環境 id:必選,上下文id,用於在生成錯誤時提示 defaultModelType:指定生成對象的樣式 1,conditional:相似hierarchical; 2,flat:全部內容(主鍵,blob)等所有生成在一個對象中; 3,hierarchical:主鍵生成一個XXKey對象(key class),Blob等單獨生成一個對象,其餘簡單屬性在一個對象中(record class) targetRuntime: 1,MyBatis3:默認的值,生成基於MyBatis3.x以上版本的內容,包括XXXBySample; 2,MyBatis3Simple:相似MyBatis3,只是不生成XXXBySample; introspectedColumnImpl:類全限定名,用於擴展MBG --> <context id="testTables" targetRuntime="MyBatis3"> <commentGenerator> <!-- 是否去除自動生成的註釋 true:是 : false:否 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--數據庫鏈接的信息:驅動類、鏈接地址、用戶名、密碼 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/shop" userId="root" password="123"> </jdbcConnection> <!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析爲 Integer,爲 true時把JDBC DECIMAL 和 NUMERIC 類型解析爲java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- targetProject:生成PO類的位置 --> <javaModelGenerator targetPackage="com.ximalaya.shop.data1" targetProject="src/main/java" > <!-- enableSubPackages:是否讓schema做爲包的後綴 --> <property name="enableSubPackages" value="false" /> <!-- 從數據庫返回的值被清理先後的空格 --> <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接口生成的位置 --> <!-- 客戶端代碼,生成易於使用的針對Model對象和XML配置文件 的代碼 type="ANNOTATEDMAPPER",生成Java Model 和基於註解的Mapper對象 type="MIXEDMAPPER",生成基於註解的Java Model 和相應的Mapper對象 type="XMLMAPPER",生成SQLMap XML文件和獨立的Mapper接口 --> <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="com.ximalaya.shop.mapper1" targetProject="src/main/java"> <!-- enableSubPackages:是否讓schema做爲包的後綴 --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 指定數據庫表 --> <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>
這裏須要注意的有兩點,第一個就是配置好本身的數據庫驅動,我原本將mysql-connector-java-5.1.28-bin.jar直接引入到項目中,而後就忽略了這個標籤,可是運行失敗,找不到數據庫驅動,而後我加上該標籤,指向文件中的mysql-connector-java-5.1.28-bin.jar的絕對路徑,就行了.第二個就是javaClientGenerator標籤裏的type,在註釋中有詳細解釋,這裏能夠根據你實際的需求生成不一樣類型的java代碼.mybatis
配置完以後,直接在當前項目下輸入命令行:mvn mabatis-generator:generate,注意個人項目名稱是shopTest因此在該目錄下運行.app
若是能看到BUILD SUCCESS,那就證實操做成功了,去你指定的src目錄下查看生成的代碼便可.webapp