mybatis逆向工程(Generator)自动生成mapper、xml、实体类的实现代码

实现代码

一、新建一个maven项目

如图所示:
在这里插入图片描述java

二、写三个文件就能够实现,如下是实现代码

  • pom.xml
    org.mybatis.generator重要的jar包,负责生成咱们要的类和xml文件。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.test</groupId>
	<artifactId>nxProject</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<dependencies>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
		<!--MyBatis Generator -->
		<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
		<dependency>
			<groupId>org.mybatis.generator</groupId>
			<artifactId>mybatis-generator-core</artifactId>
			<version>1.3.5</version>
		</dependency>
		<!--mysql-connector-java -->
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.38</version>
		</dependency>
		<!--mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.2.1</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.8.0-beta4</version>
			<scope>test</scope>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.6</version>
			<scope>provided</scope>
		</dependency>

	</dependencies>
</project>
  • 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>
  <context id="DB2Tables" targetRuntime="MyBatis3">
    <commentGenerator>
    	<!-- 是否去除自动生成的注释 -->
    	<property name="suppressAllComments" value="true"/>
    </commentGenerator>
    
    <!-- Mysql数据库链接的信息:驱动类、链接地址、用户名、密码 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://***:***/***" userId="***" password="***">
    </jdbcConnection>
    <!-- Oracle数据库 <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@***:***:***" userId="***" password="***"> </jdbcConnection> -->
	
	<!-- 默认为false,把JDBC DECIMAL 和NUMERIC类型解析为Integer,为true时 把JDBC DECIMAL 和NUMERIC类型解析为java.math.BigDecimal -->
    <javaTypeResolver >
		<property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
	
	<!-- targetProject:生成POJO类的位置,会生成POJO类和*example类。 -->
    <javaModelGenerator targetPackage="com.entity" targetProject=".\src\main\java">
		<!-- enableSubPackages:是否让schema做为包的后缀 -->
		<property name="enableSubPackages" value="false" />
		<!-- 从数据库返回的值被清理先后的空格 -->
		<property name="trimStrings" value="true" />
    </javaModelGenerator>
    
	<!-- targetProject:mapper映射文件xml生成的位置 -->
    <sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources">
		<!-- enableSubPackages:是否让schema做为包的后缀 -->
		<property name="enableSubPackages" value="false" />
    </sqlMapGenerator>
    
	<!-- targetProject:mapper接口生成的的位置 -->
	<javaClientGenerator type="XMLMAPPER" targetPackage="com.mapper" targetProject=".\src\main\java">
		<!-- enableSubPackages:是否让schema做为包的后缀 -->
		<property name="enableSubPackages" value="false" />
    </javaClientGenerator>
    
	<!-- 指定数据表 -->
	<table schema="" tableName="testTable1"></table>
	<table schema="" tableName="testTable2"></table>
	<table schema="" tableName="testTable3"></table>
    
    <!-- 有些表的字段须要指定java类型 <table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" > <property name="useActualColumnNames" value="true"/> <generatedKey column="ID" sqlStatement="DB2" identity="true" /> <columnOverride column="DATE_FIELD" property="startDate" /> <ignoreColumn column="FRED" /> <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> </table> -->
 
  </context>
</generatorConfiguration>
  • Gen.java
    有了上面两个文件,再写以下Gen.java,而后运行下,就生成了我们要的mapper、xml、实体类的代码了。生成后须要你刷新下项目,新的文件才会显示出来。
package com;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

public class Gen {
	
	public void generator() throws Exception{

	    List<String> warnings = new ArrayList<String>();
	    boolean overwrite = true;
	    //指定 逆向工程配置文件
	    File configFile = new File("GeneratorConfig.xml"); 
	    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) throws Exception {
	    try {
	    	Gen generatorSqlmap = new Gen();
	        generatorSqlmap.generator();
	        
	    } catch (Exception e) {
	        e.printStackTrace();
	    }

	}
}

划重点(∩_∩)



本人程序媛一枚,由于离港澳较近,周末兼职港澳人肉代购。mysql

欢迎各位大佬添加本人微信,还会常常有点赞活动送价值不菲的小礼品哦。web

即便如今不须要代购,等之后有了女(男)朋友、有了宝宝就确定会须要的喽。sql

动动手指头,扫码一下,就当是对本博文的支持嘛,也是对一个平凡、勤劳、勇敢、秀外慧中等等优势的程序媛莫大的支持哈。
在这里插入图片描述数据库