MyBatis——MyBatis Generator插件使用(配置详解)

目录

  • MyBatis Generator
  • targetRuntime=“MyBatis3Simple” 生成文件
  • targetRuntime=“MyBatis3” 生成文件
  • MyBatis Generator最完整配置详解

在这里插入图片描述

MyBatis源码及资料: https://github.com/coderZYGui/MyBatis-Study

MyBatis系列

  1. MyBatis — ORM思想、MyBatis概述、日志框架、OGNL
  2. MyBaits — MyBatis的CRUD操作、别名配置、属性配置、查询结果映射、Mapper组件、参数处理、注解开发
  3. MyBatis — 动态SQL、if、where、set、foreach、sql片段
  4. MyBatis — 对象关系映射、延迟加载、关联对象的配置选择
  5. MyBatis — 缓存机制、EhCache第三方缓存
  6. MyBatis — MyBatis Generator插件使用(配置详解)

Mybatis Generator

跳转到目录
Mybatis Generator简称 MBG,是一个专门为 MyBatis和 ibatis框架使用者提供的代码生成器。也可以快速的根据数据表生成对应的pojo类、Mapper接口、Mapper文件,甚至生成QBC风格的查询对象

  • 一般在项目中,根据MyBatis Generator的XML配置文件设置生成简单的CRUD,但是复杂的查询或者有关关联的操作还是需要我们写SQL完成。

pom.xml引出 mybatis-generator 坐标

        
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-apiartifactId>
            <version>1.7.25version>
        dependency>


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

一、使用 targetRuntime=“MyBatis3Simple” 生成对应文件

跳转到目录

1、导入generatorConfig.xml文件

        
<generatorConfiguration>

<context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple">
    
    <property name="javaFileEncoding" value="UTF-8" />
    
    <property name="beginningDelimiter" value="`" />
    <property name="endingDelimiter" value="`" />

    
    <commentGenerator>
        <property name="suppressDate" value="true" />
        <property name="suppressAllComments" value="true" />
    commentGenerator>

    
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                    connectionURL="jdbc:mysql://localhost:3306/mybatis"
                    userId="root"
                    password="1111">
    jdbcConnection>

    
    <javaModelGenerator targetPackage="com.sunny.domain" targetProject="mybatis-11_MBG/src/main/java">
        <property name="enableSubPackages" value="true" />
    javaModelGenerator>

    
    <sqlMapGenerator targetPackage="com.sunny.mapper" targetProject="mybatis-11_MBG/\src\main\resources">
        <property name="enableSubPackages" value="true" />
    sqlMapGenerator>

    
    <javaClientGenerator targetPackage="com.sunny.mapper" type="XMLMAPPER"
                         targetProject="mybatis-11_MBG/src/main/java">
        <property name="enableSubPackages" value="true" />
    javaClientGenerator>


    
    
    <table tableName="user2" delimitIdentifiers="true">
        <property name="useActualColumnNames" value="true" />
        <generatedKey column="id" sqlStatement="JDBC" />
    table>
    
context>
generatorConfiguration>
2、启动MyBatis Generator

使用 Java代码运行,也可使用 Maven插件运行

Generator类

package com.sunny.domain;

import java.io.InputStream;
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 Generator {
	public static void main(String[] args) throws Exception {
		//MBG执行过程中的警告信息
		List<String> warnings = new ArrayList<String>();
		//生成代码重复时,是否覆盖源代码
		boolean override = false;
		InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("generatorConfig.xml");
		ConfigurationParser cp = new ConfigurationParser(warnings);
		Configuration config = cp.parseConfiguration(in);

		DefaultShellCallback callback = new DefaultShellCallback(override);
		//创建MBG
		MyBatisGenerator mbg = new MyBatisGenerator(config, callback, warnings);
		mbg.generate(null);
		//输出警告信息
		for (String warn : warnings) {
			System.out.println(warn);
		}
	}
}
3、生成文件

MyBatis——MyBatis Generator插件使用(配置详解)_第1张图片

二、使用 targetRuntime=“MyBatis3” 生成QBC风格文件

跳转到目录
MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample
把 MBG配置文件 那里改为 MyBatis3 即可,启动类一样.

<context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3">

生成目录如下:

MyBatis——MyBatis Generator插件使用(配置详解)_第2张图片

  • 使用QBC查询
    MyBatis——MyBatis Generator插件使用(配置详解)_第3张图片
    /**
     * 测试MBG的查询
     */
    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        User2Mapper user2Mapper = sqlSession.getMapper(User2Mapper.class);

        User2Key user2Key = new User2Key();
        user2Key.setId(1L);
        User2 user2 = user2Mapper.selectByPrimaryKey(user2Key);

        sqlSession.close();
    }

三、MyBatis Generator最完整配置详解

跳转到目录




<generatorConfiguration>

 
 
 

<context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple" >
 
    
    <property name="autoDelimitKeywords" value="false"/>
    
    <property name="javaFileEncoding" value="UTF-8"/>
    
    <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
    
    <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
 
    
    <property name="beginningDelimiter" value="`"/>
    <property name="endingDelimiter" value="`"/>
 
    
    <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql:///pss" userId="root" password="admin">
        
    jdbcConnection>
 
    
    <javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
        
        <property name="forceBigDecimals" value="false"/>
    javaTypeResolver>
 
 
    
    <javaModelGenerator targetPackage="com._520it.mybatis.domain" targetProject="src/main/java">
        
        <property name="constructorBased" value="false"/>
 
        
        <property name="enableSubPackages" value="true"/>
 
        
        <property name="immutable" value="false"/>
 
        
        <property name="rootClass" value="com._520it.mybatis.domain.BaseDomain"/>
 
        
        <property name="trimStrings" value="true"/>
    javaModelGenerator>
 
 
    
    <sqlMapGenerator targetPackage="com._520it.mybatis.mapper" targetProject="src/main/resources">
        
        <property name="enableSubPackages" value="true"/>
    sqlMapGenerator>
 
 
    
    <javaClientGenerator targetPackage="com._520it.mybatis.mapper" type="ANNOTATEDMAPPER" targetProject="src/main/java">
        
        <property name="enableSubPackages" value="true"/>
 
        
    javaClientGenerator>
 
    
    <table tableName="userinfo" >
 
        
        <property name="constructorBased" value="false"/>
 
        
        <property name="ignoreQualifiersAtRuntime" value="false"/>
 
        
        <property name="immutable" value="false"/>
 
        
        <property name="modelOnly" value="false"/>
 
        
 
        
 
        
 
        
 
        
 
        
        <property name="selectAllOrderByClause" value="age desc,username asc"/>
 
        
        <property name="useActualColumnNames" value="false"/>
 
 
        
 
        
 
 
         
         <columnOverride column="username">
             
             <property name="property" value="userName"/>
 
             
 
             
 
             
 
             
         columnOverride>
 
         
    table>
 
context>
 
generatorConfiguration>

参考: MyBatis Generator

你可能感兴趣的:(MyBatis,Mybatis,Generator)