1,前言

 先说下逆向工程是干嘛的,他就是用来自动生成JAVA POJO类,并同时生成Mapper.xml和Mapper接口的东东。

2,使用方法

 **1)**由于建立的是maven工程,所以先在pom.xml文件中导入jar包,如图:  **2)**根据mybatis generator官方文档,新建mpg.xml并copy相关代码。

<?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="DB2Tables" targetRuntime="MyBatis3">
		<!-- 不自动生成注释 -->
		<commentGenerator>
			<property name="suppressAllComments" value="true" />
		</commentGenerator>

		<!-- 配置数据库连接信息 -->
		<jdbcConnection 
			driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://localhost:3306/ssm_crud?serverTimezone=GMT&amp;useSSL=false"
			userId="root"
			password="123456">
		</jdbcConnection>

		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>

		<!-- 指定JavaBean生成的位置 -->
		<javaModelGenerator
			targetPackage="com.zgz.crud.bean" targetProject=".\src\main\java">
			<property name="enableSubPackages" value="true" />
			<property name="trimStrings" value="true" />
		</javaModelGenerator>

		<!-- 指定sql映射文件生成的位置 -->
		<sqlMapGenerator targetPackage="mapper"
			targetProject=".\src\main\resources">
			<property name="enableSubPackages" value="true" />
		</sqlMapGenerator>

		<!-- 指定dao接口生成的位置,mapper接口 -->
		<javaClientGenerator type="XMLMAPPER"
			targetPackage="com.zgz.crud.dao" targetProject=".\src\main\java">
			<property name="enableSubPackages" value="true" />
		</javaClientGenerator>

		<!-- table指定每张表的生成策略 -->
		<table tableName="tbl_emp" domainObjectName="Employee"></table>
		<table tableName="tbl_dept" domainObjectName="Department"></table>

	</context>
</generatorConfiguration>

 **3)**还是根据官方文档,给出执行代码,如图:  **4)**执行,给出官方文档的网址,如下:   http://www.mybatis.org/generator/configreference/xmlconfig.html

3,遇到的坑及解决办法

 1)Mybatis Generator 不识别主键,无法生成selectByPrimaryKey、deleteByPrimaryKey、updateByPrimaryKey。  2)问题描述和解决方法如图:  3)逆向工程,重新生成不会覆盖原文件,会在原来基础上再生成  敲重点:上面的第一个问题,究其原因无非就是与mysql相关的jar包的版本太高,终极解决办法是更换jar包,反正我没找到另外的方法,至于第三个问题我只是重启了eclipse,第二次执行了下测试方法,就蜜汁成功了。--_--