第一步、使用maven创建项目
默认选项,不需要点击“Create from archetype”。
创建成功。
第二步、pom.xml文件加入以下依赖和插件
 <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.3</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.6</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <!-- mybatis-generator自动生成代码插件 -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
            </plugin>
        </plugins>
    </build>  第三步、编写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>
	<context id="testTables" targetRuntime="MyBatis3">
		<commentGenerator>
			<!-- 是否去除自动生成的注释 true:是 : false:否 -->
			<property name="suppressAllComments" value="true" />
		</commentGenerator>
		<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
		<jdbcConnection driverClass="" connectionURL="" userId="" password="">
		</jdbcConnection>
		<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
			NUMERIC 类型解析为java.math.BigDecimal -->
		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>
		<!-- targetProject:生成PO类的位置 -->
		<javaModelGenerator targetPackage="" targetProject=".\src">
			<!-- enableSubPackages:是否让schema作为包的后缀 -->
			<property name="enableSubPackages" value="false" />
			<!-- 从数据库返回的值被清理前后的空格 -->
			<property name="trimStrings" value="true" />
		</javaModelGenerator>
		<!-- targetProject:mapper映射文件生成的位置 -->
		<sqlMapGenerator targetPackage="" targetProject=".\src">
			<!-- enableSubPackages:是否让schema作为包的后缀 -->
			<property name="enableSubPackages" value="false" />
		</sqlMapGenerator>
		<!-- targetPackage:mapper接口生成的位置 -->
		<javaClientGenerator type="XMLMAPPER" targetPackage="" targetProject=".\src">
			<!-- enableSubPackages:是否让schema作为包的后缀 -->
			<property name="enableSubPackages" value="false" />
		</javaClientGenerator>
		<!-- 指定数据库表 -->
		<table schema="" tableName=""/>
		<table schema="" tableName=""/>
		<table schema="" tableName=""/>
		<table schema="" tableName=""/>
		<table schema="" tableName=""/>
		<table schema="" tableName=""/>
		<table schema="" tableName=""/>
	</context>
</generatorConfiguration>
  配置数据库驱动、URL、用户和密码;生成的po类、mapper接口、mapper.xml文件的位置;指定数据库表,也可以指定数据库视图(关联表查询建议用视图)。
第四步、写运行方法
public class GeneratorSql {
	public void generator() throws Exception{
		List<String> warnings = new ArrayList<>();
		boolean overwrite = true;
		//指定 逆向工程配置文件
		File configFile = new File("");
		ConfigurationParser cp = new ConfigurationParser(warnings);
		Configuration config = cp.parseConfiguration(configFile);
		DefaultShellCallback callback = new DefaultShellCallback(overwrite);
		MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback,warnings);
		myBatisGenerator.generate(null);
	} 
	public static void main(String[] args) {
		try {
			GeneratorSql generatorSql = new GeneratorSql();
			generatorSql.generator();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}  指定逆向工程xml配置文件位置。
第五步、启动运行
注意问题:
- 如果需要重新逆向生成,要把之前的生成的代码全部删除,否则新生成的代码会和之前的代码相结合。
 - 数据库的表名尽量不要重复,或者跟数据库本身存在的关键字一样。例如,以user作为表名,会生成除了你自己的表外和数据库本身的user表,导致UserMapper.xml存在大量重复ID而出错。还有尽量不要使用数据库本身的关键字来命名,以我的例子,用了order来命名订单表,假如查询语句是 
select * from order这里在查询的时候,数据库本身就会报错,因此要么改表名重新逆向工程,要么在xml文件中的每一个“order”两边加上“`”(tab键的上一个键)。
 -  
以上两个问题都是踩过的坑,心累
 
如果不用maven的话,第二步改成将相关jar包导入到lib目录下即可。

京公网安备 11010502036488号