MyBatis逆向工程代码的生成及使用详解

MyBatis逆向工程代码的生成及使用详解MyBatis逆向工程代码的生成 在MyBatis的开发过程中,数据库表、实体类、SQL映射文件(mapper.xml文件)以及动态代理接口四者之间有着非常密切的关系。 一般的开发流程是:先设计并创建数据库表(如user表),再根据数据库表创建对应的实体类(如User.java),之后再编写SQL映射文件(如userMapper.xml),最后再根据SQL映射文件…

大家好,又见面了,我是你们的朋友全栈君。

MyBatis逆向工程代码的生成

      在MyBatis的开发过程中,数据库表、实体类、SQL映射文件(mapper.xml文件)以及动态代理接口四者之间有着非常密切的关系。

         一般的开发流程是:先设计并创建数据库表(如user表),再根据数据库表创建对应的实体类(如User.java),之后再编写SQL映射文件(如userMapper.xml),最后再根据SQL映射文件编写动态代理接口(如userMapper.java)。

除此之外,我们还可以只设计并创建数据库表,然后利用MyBatis提供的工具来自动生成其他三个(实体类、SQL映射文件和动态代理接口),以下是具体的步骤:

准备工作:

   1、在数据库中准备所需的数据表(如 user、user_card)两张表

  注: 直接将sql语句复制进去,运行。如若发现错误,检查是否出现其他符号,由于网页转换导致有时候不能识别。

      user表:

INSERT INTO `ssm_practice`.`user`(`id`, `name`, `age`, `card_id`) VALUES (1, '张三', 20, '150');
INSERT INTO `ssm_practice`.`user`(`id`, `name`, `age`, `card_id`) VALUES (2, '李四', 21, '151');
INSERT INTO `ssm_practice`.`user`(`id`, `name`, `age`, `card_id`) VALUES (3, '王五', 22, '152');

user_card表:

INSERT INTO `ssm_practice`.`user_card`(`id`, `card_id`, `card_class`) VALUES (1, '150', '1');
INSERT INTO `ssm_practice`.`user_card`(`id`, `card_id`, `card_class`) VALUES (2, '151', '2');
INSERT INTO `ssm_practice`.`user_card`(`id`, `card_id`, `card_class`) VALUES (3, '152', '3');

2、在Maven项目中引入所需jar包 

   博主文件位置:

       MyBatis逆向工程代码的生成及使用详解

   普通工程可以下载jar包引入进项目即可(mysq、mybatis、及mybatis-generator-core)

     普通工程jar下载地址:

https://repo1.maven.org/maven2/org/mybatis/generator/mybatis-generator-core/1.3.7/mybatis-generator-core-1.3.7.jar

 Maven项目pom文件引入

<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
   <dependency>
	<groupId>org.mybatis.generator</groupId>
	<artifactId>mybatis-generator-core</artifactId>
	<version>1.3.7</version>
   </dependency>

3、创建配置文件并进行编写

   generator.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>
	<!-- mybatisGenerator:上下文名称    targetRuntime:环境是MyBatis3.x -->
	<context id="mybatisGenerator" targetRuntime="MyBatis3">
		<!--自动生成类时加不加注释 -->
		<commentGenerator>
			<!--
				 suppressAllComments属性值:
				 true:自动生成实体类、SQL映射文件时没有注释 
				 false:自动生成实体类、SQL映射文件,并附有注释 
			-->
			<property name="suppressAllComments" value="true" />
		</commentGenerator>
		
		<!-- 数据库连接信息 -->
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://127.0.0.1:3306/ssm_practice" 
			userId="root"
			password="root">
		</jdbcConnection>
		<!-- 
			forceBigDecimals属性值:
			   true:把数据表中的DECIMAL和NUMERIC类型, 解析为JAVA代码中的java.math.BigDecimal类型 
			   false(默认):把数据表中的DECIMAL和NUMERIC类型, 解析为解析为JAVA代码中的Integer类型 
		-->
		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>
		
		<!-- targetProject属性值: 实体类的生成位置     targetPackage属性值:实体类所在包的路径 -->
		<javaModelGenerator
			targetPackage="com.sss.mybatisGenerator.pojo"   targetProject=".\src\main\java">
			<!-- 
				trimStrings属性值: 
				true:对数据库的查询结果进行trim(去空格)操作 
				false(默认):不进行trim操作
			 -->
			<property name="trimStrings" value="true" />
		</javaModelGenerator>
		
		<!-- 生成mapper文件 -->
		<!-- targetProject属性值:SQL映射文件的生成位置     targetPackage属性值:SQL映射文件所在包的路径 -->
		<sqlMapGenerator targetPackage="com.sss.mybatisGenerator.mapper"  targetProject=".\src\main\java">
		</sqlMapGenerator>
		
		<!-- 生成动态代理的接口   我这里mapper.xml与接口在同一个包下  -->
		<javaClientGenerator type="XMLMAPPER"
			targetPackage="com.sss.mybatisGenerator.mapper"  targetProject=".\src\main\java">
		</javaClientGenerator>
		
		<!-- 指定数据库中的表 -->
		<table tableName="user" />
		<table tableName="user_card" />
		
	</context>
</generatorConfiguration>

4、编写测试代码

注:new File(“配置文件路径”)时    配置文件的路径一定要写对,不然会报错

MyBatisGeneratorTest.java

package com.sss.mybatisGenerator;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
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.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

/**
 * @Description: Mybatis逆向工程测试类
 */
public class MyBatisGeneratorTest {

	public static void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException {

		//  找到配置文件
		File file = new File("src/main/resources/generator.xml");
		//  需要生成List保存警告信息
		List<String> warnings = new ArrayList<String>();
		ConfigurationParser cp = new ConfigurationParser(warnings);
		Configuration config = cp.parseConfiguration(file);
		DefaultShellCallback callBack = new DefaultShellCallback(true);
		//  逆向工程核心类
		MyBatisGenerator generator = new MyBatisGenerator(config, callBack, warnings);
		generator.generate(null);
	}
}

5、测试

运行测试类,控制台没有打印信息,证明生成类成功,可以去路径下刷新查看。

MyBatis逆向工程代码的生成及使用详解

 如有问题,请留言

 

————————————————————————————————————————————————

MyBatis逆向工程代码的生成及使用详解MyBatis逆向工程代码的生成及使用详解

坚持总结工作中遇到的技术问题,坚持记录工作中所思所见。群中可下载相关资料

MyBatis逆向工程代码的生成及使用详解

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147141.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • TS流批量下载工具

    TS流批量下载工具工具目录下有3个文件ffmpeg.exe:主要用来处理TS文件转为PM4文件用到,可以自行到相关网站下载http://ffmpeg.org/OnlineFilm.exe 主要执行程序FilesDownLoad.dll下载模块 新建   新建TS文件的索引文件,*.M3u8,怎么获取,参照“Ts文件说明”。M3U8文件如果是本地的文件,需要填写通用地址。…

    2022年7月18日
    58
  • 环形队列的实现(什么是环形队列)

    环形队列可以使用数组实现,也可以使用循环链表实现。packagewww.bittech;publicclassMyCircularQueue{privateintfront;//队列头privateintrear;//队列尾privateintusedSize;//数据个数privateint[]elem;//数组…

    2022年4月18日
    60
  • DNS+Anycast 均衡负载实战(IPV4)

    DNS+Anycast 均衡负载实战(IPV4)我们建立了一个IP为6.6.6.6内网DNS服务器群,所在网段为10.211.77.0/24,而我们要实现的是在PC端(网段10.211.66.0/24)能ping通6.6.6.6,同时执行命令digwww.baidu.com@6.6.6.6A,能得到文章最开始的dig8.8.8.8类似的返回结果。

    2022年5月23日
    65
  • VBoxGuestAdditions.iso下载地址

    VBoxGuestAdditions.iso下载地址http://download.virtualbox.org/virtualbox/选择自己对应版本下载

    2022年6月15日
    27
  • WriteProcessMemory函数说明

    WriteProcessMemory函数说明WriteProcessMemory目录概览C++VB编辑本段概览WriteProcessMemory此函数能写入某一进程的内存区域。入口区必须可以访问,否则操作将失败。编辑本段C++此函数能写入

    2022年7月2日
    30
  • python中bool()函数

    python中bool()函数python中bool()函数

    2022年5月29日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号