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

Posted 如月之恒-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis逆向工程(Generator)自动生成mapperxml实体类的实现代码相关的知识,希望对你有一定的参考价值。

文章目录

实现代码

1、新建一个maven项目

如图所示:

2、写三个文件就可以实现,以下是实现代码

  • 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();
	    

	

  • 文章是个人知识点整理总结,如有错误和不足之处欢迎指正。
  • 如有疑问、或希望与笔者探讨技术问题(包括但不限于本章内容),欢迎添加笔者微信(o815441)。请备注“探讨技术问题”。欢迎交流、一起进步。

以上是关于mybatis逆向工程(Generator)自动生成mapperxml实体类的实现代码的主要内容,如果未能解决你的问题,请参考以下文章

mybatis逆向工程--自动生成实体代码(mybatis-generator)

MyBatis -- generator 逆向工程

mybatis-generator逆向工程,自动生成dao层和mapper配置

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

MyBatis逆向工程Generator和IDE Plugin

Mybatis-generator,自动生成文件.问题及解决