MyBatis Generator( 逆向工程以及源码分析 )

Mybatis生成器

  • 介绍
  • 使用方式
    • 1 创建Maven项目, 指定为jar类型
    • 2 添加坐标依赖
    • 3 创建配置文件 config.xml
    • 4 创建启动类
    • 5. 查看结果

介绍

  • MyBatis Generator(MBG)是 MyBatis 和 iBATIS 的代码生成工具。它可以为所有 MyBatis 版本以及 iBATIS 版本 2.2.0 及以上自动生成代码。

  • 它会逆向查找一张或多张数据库表的信息,生成操作数据库表所需要的组件。基本上省去了自已手动创建实体类以及配置文件的麻烦。

  • MBG 只是对单表的增删改查(CRUD (Create, Retrieve, Update, Delete))生成了大部分的代码,对于像连接查询或者存储过程之类的,还是需要手动编写 sql 和实体类的。

  • MBG 会生成对应于表结构的 java POJO 类。包括一个支持动态查询、更新和删除的类。

  • MBG 为单表的增删改查生成了配置文件和映射文件。生成的 SQL 语句包括:

insert 
update by primary key 
update by example (使用动态 where 子句) 
delete by primary key delete by example (使用动态 where 子句) 
select by primary key select by example (使用动态 where 子句) 
count by example 返回查询结果的个数

根据表结构的不同,这些语句会有一些变化,比如有的表没有主键,则 MBG 不会生成根据主键更新表的记录的方法。

使用方式

1 创建Maven项目, 指定为jar类型

2 添加坐标依赖

	<dependencies>
		
		<dependency>
			<groupId>org.mybatis.generatorgroupId>
			<artifactId>mybatis-generator-coreartifactId>
			<version>1.3.2version>
		dependency>

		
		<dependency>
			<groupId>org.mybatisgroupId>
			<artifactId>mybatisartifactId>
			<version>3.3.0version>
		dependency>

		
		<dependency>
			<groupId>mysqlgroupId>
			<artifactId>mysql-connector-javaartifactId>
			<version>5.1.20version>
		dependency>

		
		<dependency>
			<groupId>commons-logginggroupId>
			<artifactId>commons-loggingartifactId>
			<version>1.2version>
		dependency>

		
		<dependency>
			<groupId>org.apache.logging.log4jgroupId>
			<artifactId>log4j-coreartifactId>
			<version>2.2version>
		dependency>
		
		<dependency>
			<groupId>log4jgroupId>
			<artifactId>log4jartifactId>
			<version>1.2.17version>
		dependency>
		
		<dependency>
			<groupId>org.slf4jgroupId>
			<artifactId>slf4j-apiartifactId>
			<version>1.7.12version>
		dependency>

		
		<dependency>
			<groupId>org.slf4jgroupId>
			<artifactId>slf4j-log4j12artifactId>
			<version>1.7.12version>
		dependency>
		
		<dependency>
			<groupId>org.ow2.asmgroupId>
			<artifactId>asmartifactId>
			<version>4.2version>
		dependency>
		
		<dependency>
			<groupId>cglibgroupId>
			<artifactId>cglibartifactId>
			<version>3.1version>
		dependency>

	dependencies>

3 创建配置文件 config.xml

至少要指定如下参数:

  • 指定数据库连接的信息:驱动类、连接地址、用户名、密码
  • 指定targetProject:生成POJO类的位置
  • 指定targetProject:mapper映射文件生成的位置
  • targetPackage:mapper接口生成的位置



<generatorConfiguration>
	<context id="testTables" targetRuntime="MyBatis3">
	
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
    
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
        
		<commentGenerator>
			
			<property name="suppressAllComments" value="true" />
		commentGenerator>
		
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://localhost:3306/ego" userId="root"
			password="root">
		jdbcConnection>
		
		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		javaTypeResolver>

		
		<javaModelGenerator targetPackage="ah.szxy.ego.rpc.pojo"
			targetProject=".\src">
			
			<property name="enableSubPackages" value="false" />
			
			<property name="trimStrings" value="true" />
		javaModelGenerator>
        
		<sqlMapGenerator targetPackage="ah.szxy.ego.rpc.mapper" 
			targetProject=".\src">
			
			<property name="enableSubPackages" value="false" />
		sqlMapGenerator>
		
		<javaClientGenerator type="XMLMAPPER"
			targetPackage="ah.szxy.ego.rpc.mapper" 
			targetProject=".\src">
			
			<property name="enableSubPackages" value="false" />
		javaClientGenerator>
		
		<table schema="" tableName="tb_content">table>
		<table schema="" tableName="tb_content_category">table>
		<table schema="" tableName="tb_item">table>
		<table schema="" tableName="tb_item_cat">table>
		<table schema="" tableName="tb_item_desc">table>
		<table schema="" tableName="tb_item_param">table>
		<table schema="" tableName="tb_item_param_item">table>
		<table schema="" tableName="tb_order">table>
		<table schema="" tableName="tb_order_item">table>
		<table schema="" tableName="tb_order_shipping">table>
		<table schema="" tableName="tb_user">table>

	context>
generatorConfiguration>

4 创建启动类

需要指定配置文件所在地址
MyBatis Generator( 逆向工程以及源码分析 )_第1张图片

package ah.szxy.mybatis.test;

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 MybatisGeneratorTest {
	
	public void generator() throws Exception {

		List<String>warnings = new ArrayList<String>();
		boolean overwrite = true;
		// 指定 逆向工程配置文件/MBG/src/main/resources/config.xml
		File configFile = new File(System.getProperty("user.dir")+"/src/main/resources/config.xml");
		//File configFile = new File(System.getProperty("user.dir")+"/src/config.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 {
			MybatisGeneratorTest generatorSqlmap = new MybatisGeneratorTest();
			generatorSqlmap.generator();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


}


5. 查看结果

  1. 运行完毕后, 控制台如下:

MyBatis Generator( 逆向工程以及源码分析 )_第2张图片

  1. 刷新Maven项目后 , 如下图
    MyBatis Generator( 逆向工程以及源码分析 )_第3张图片
  2. 创建好相对应的包, 将生成的类和配置文件放入到相关的包中.
    a. 点击实体类, 复制包名 ,在src下创建包名,mapper接口同上

MyBatis Generator( 逆向工程以及源码分析 )_第4张图片
b. Mapper的配置文件 ,则可以直接复制到相关项目下 ,但是需要在dao的配置文件注册组件扫描 ,如下面代码和截图

Mapper配置文件所在地址
MyBatis Generator( 逆向工程以及源码分析 )_第5张图片
applicationContent-dao.xml 使Mapper生效的配置文件
MyBatis Generator( 逆向工程以及源码分析 )_第6张图片
mapper.xml 的组件扫描代码

   
   
   
   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      

      <property name="basePackage" value="ah.szxy.ego.rpc.mapper">property>
      

   bean>

逆向工程源码 :

链接:https://pan.baidu.com/s/1Z4bASeA7jPjLmhCQOoJSJg
提取码:r4bj
复制这段内容后打开百度网盘手机App,操作更方便哦

你可能感兴趣的:(JAVA小窝(笔记),易购电商项目)