欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mybatis反向生成实体类、mapper映射

程序员文章站 2022-06-15 09:38:31
...

1.引入jar包

<!-- mybatis-generator-core 反向生成java代码-->
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.5</version>
        </dependency>

2.编写generator-fonfig.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="SqlServerContext" targetRuntime="MyBatis3Simple"
		defaultModelType="flat">
		<property name="beginningDelimiter" value="`" />
		<property name="endingDelimiter" value="`" />
		<!-- 清除mybatis-generator的注释 -->
		<commentGenerator>
			<property name="suppressAllComments" value="true" />
		</commentGenerator>
		<!-- jdbcConnection -->
		<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" 
			connectionURL="jdbc:mysql://127.0.0.1:3306/yjmysql?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC" 
			userId="yjhd" 
			password="yjhd">  
        </jdbcConnection> 
		<!--指定生成的类型为java类型,避免数据库中number等类型字段 -->
		<javaTypeResolver>
			<property name="forceBigDecimals " value="false" />
		</javaTypeResolver>
		<!--自动生成的实体的存放包路径 -->
		<javaModelGenerator targetPackage="com.yj.hd.ioc.entity" targetProject="src/main/java">
		<property name="trimStrings" value="true" />
		</javaModelGenerator>
		<!--自动生成的*Mapper.xml文件存放路径 -->
		<sqlMapGenerator targetPackage="main.resources.mybatis.mapper" targetProject="src" />
		<!--自动生成的*Mapper.java存放路径 type: XMLMAPPER 采用的是xml方式, -->
		<javaClientGenerator type="XMLMAPPER" targetPackage="com.yj.hd.ioc.dao" targetProject="src/main/java" />
		<!-- 需要生成代码的表名,每个表一个table节点如下 -->
		<table tableName="yj_user" domainObjectName="YjUser" 
			enableCountByExample="false" enableUpdateByExample="false" 
			enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
		</table>
	</context>
</generatorConfiguration>  

1) jdbcConnection:jdbc链接配置

(1)由于&符号无法直接在参数中使用,所以使用&amp;符号代替
mysql的链接中对中文字符不识别:使用characterEncoding=UTF-8标注
告诉数据库此次连接传输UTF8数据,项目为UTF8 数据库为其他编码,在持久化时会把项目UTF8的数据 转换为数据库存储的格式;从数据库取数据同理。
项目和数据库都为UTF8的话,可以不写
(2)serverTimezone=UTC调整服务时间为世界时间

1)javaModelGenerator

(1)javaModelGenerator:用于定义Java模型生成器的属性。Java模型生成器将构建与自省表匹配的主键类,记录类和“按示例查询”类。该元素是元素的必需子元素。
(2)targetPackage:这是将生成的类放在其中的包。在默认生成器中,属性“ enableSubPackages”控制如何计算实际包。如果为true,则计算的包将是targetPackage以及表的目录和架构的子包(如果存在)。如果为false(默认值),则计算出的包将与targetPackage属性中指定的包完全相同。Ibator将根据所生成软件包的需要创建文件夹。
(3)targetProject:这用于为生成的对象指定目标项目。在Eclipse环境中运行时,它指定将在其中保存对象的项目和源文件夹。在其他环境中,该值应该是本地文件系统上的现有目录。如果该目录不存在,则Ibator不会创建该目录。
(4)property:指定的默认Java模型生成器的属性
trimStrings:此属性用于选择Ibator是否添加代码以修剪数据库返回的字符字段中的空白。如果您的数据库将数据存储在CHAR字段而不是VARCHAR字段中,则这将很有用。如果为true,则Ibator将插入代码以修剪字符字段。
默认值为false

3.编写main启动方法

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 static void main(String[] args) {
		try {
			List<String> warnings = new ArrayList<String>();
			boolean overwrite = true;
			String genCfg = "generator-fonfig.xml";
			File configFile = new File(Gen.class.getResource(genCfg).getFile());
			ConfigurationParser cp = new ConfigurationParser(warnings);
			Configuration config = null;
			config = cp.parseConfiguration(configFile);
			DefaultShellCallback callback = new DefaultShellCallback(overwrite);
			MyBatisGenerator myBatisGenerator = null;
			myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
			myBatisGenerator.generate(null);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

4.运行

运行main方法后将在配置文件指定路径下生成dao、实体类。mapper