• mybatis学习(十二)——mybatis逆向工程


    MyBatis Generator (MBG)是一个mabatis的代码生成器,能够根据表自动生成mapper接口,mapper.xml文件,javaBean文件。

    1、MBG的下载

    打开https://github.com/mybatis/,可以看到有多个项目,找到generator项目,并下载下来。

    解压之后lib目录下就有所需要的jar包

    将第一个jar包导入项目中即可

    2、MBG文档

    http://www.mybatis.org/generator/

    打开之后选择快速指导,进入xml配置

     3、mbg.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="MyBatis3Simple">
        <!-- jdbc配置 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/spring_mybatis?useUnicode=true&amp;characterEncoding=UTF-8"
            userId="root" password="tuniu520">
        </jdbcConnection>
    
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
    
        <!-- javaBean的生成 -->
        <javaModelGenerator targetPackage="com.pjf.mybatis.po"
            targetProject=".src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- xml映射文件的生成 -->
        <sqlMapGenerator targetPackage="com.pjf.mybatis.dao"
            targetProject=".src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        <!-- mapper接口的生成 -->
        <javaClientGenerator type="XMLMAPPER"
            targetPackage="com.pjf.mybatis.dao" targetProject=".src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
        <!-- 指定逆向分析哪些表,根据表创建JavaBean -->
        <table tableName="hotel" domainObjectName="Hotel"></table>
        <table tableName="city" domainObjectName="City"></table>
    </context>
    </generatorConfiguration>
    targetPackage表示将生成的文件放在哪个包下面
    targetProject表示生成的文件放在哪个目录下
    domainObjectName表示对应的JavaBean名

    具体的一些属性的意思可以查询文档

     可以看到上面的xml分别配置了JavaBean、mapper接口、mapper.xml文件、还有表名和对应的JavaBean名。

    4、逆向工程生成

    打开刚刚文档,选择Running MyBatis Generator

    点击进入

    复制下代码,

    编写逆向工程类类

    package com.pjf.mybatis;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;
    import org.junit.Test;
    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 Test {
    
        @Test
        public void testMbg() throws Exception {
            // 将刚复制的代码放在这,
            // 根据提示将导入的文件导入,异常抛出
            List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            File configFile = new File("mbg.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);
    
        }
    }

    这时候刷新下就可以看到自动生成的代码

    这时候生成的是比较简单的增删改查语句,需要复杂的可以将mbg.xml文件中targetRuntime属性的值改为MyBatis3。

    修改之后可以看到生成了比较复杂的增删改查

    
    
  • 相关阅读:
    菜鸟水平如何在Android Studio中添加uiautomator测试框架
    Android Studio入门问题汇总
    Win10上启动UICrawler自动遍历时报 "org.openqa.selenium.WebDriverException: An unknown server-side error occur red while processing the command. Original error: Could not sign with default certifi cate."
    python pip常用命令
    生动理解多态中向上与向下转型
    final 关键字的作用及应用案例
    如何使用 eclipse进行断点 debug 程序
    java中自己常犯的错误汇总
    Java中,类与类,类中的代码执行顺序
    Java中变量之局部变量、本类成员变量、父类成员变量的访问方法
  • 原文地址:https://www.cnblogs.com/pjfmeng/p/7754678.html
Copyright © 2020-2023  润新知