MyBatis-逆向工程

2023-05-16

  • 正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程 的。
  • 逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源:
    • Java实体类
    • Mapper接口
    • Mapper映射文件

1、创建逆向工程的步骤

  • 添加依赖和插件
    <!-- 依赖MyBatis核心包 -->
    <dependencies>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.7</version>
    </dependency>
    </dependencies>
            <!-- 控制Maven在构建过程中相关配置 -->
    <build>
    <!-- 构建过程中用到的插件 -->
    <plugins>
      <!-- 具体插件,逆向工程的操作是以构建过程中插件形式出现的 -->
      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.0</version>
        <!-- 插件的依赖 -->
        <dependencies>
          <!-- 逆向工程的核心依赖 -->
          <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.2</version>
          </dependency>
          <!-- 数据库连接池 -->
          <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.2</version>
          </dependency>
          <!-- MySQL驱动 -->
          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.8</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
    </build>
  • 创建MyBatis的核心配置文件 
  • 创建逆向工程的配置文件

文件名必须是:generatorConfig.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>
<!--
targetRuntime: 执行生成的逆向工程的版本
MyBatis3Simple: 生成基本的CRUD(清新简洁版)
MyBatis3: 生成带条件的CRUD(奢华尊享版)
-->
<context id="DB2Tables" targetRuntime="MyBatis3Simple">
  <!-- 数据库的连接信息 -->
  <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                  connectionURL="jdbc:mysql://localhost:3306/mybatis"
                  userId="root"
                  password="123456">
  </jdbcConnection>
  <!-- javaBean的生成策略-->
  <javaModelGenerator targetPackage="com.atguigu.mybatis.bean"
                      targetProject=".\src\main\java">
    <property name="enableSubPackages" value="true" />
    <property name="trimStrings" value="true" />
  </javaModelGenerator>
  <!-- SQL映射文件的生成策略 -->
  <sqlMapGenerator targetPackage="com.atguigu.mybatis.mapper"
                   targetProject=".\src\main\resources">
    <property name="enableSubPackages" value="true" />
  </sqlMapGenerator>
  <!-- Mapper接口的生成策略 -->
  <javaClientGenerator type="XMLMAPPER"
                       targetPackage="com.atguigu.mybatis.mapper" targetProject=".\src\main\java">
    <property name="enableSubPackages" value="true" />
  </javaClientGenerator>
  <!-- 逆向分析的表 -->
  <!-- tableName设置为*号,可以对应所有表,此时不写domainObjectName -->
  <!-- domainObjectName属性指定生成出来的实体类的类名 -->
  <table tableName="t_emp" domainObjectName="Emp"/>
  <table tableName="t_dept" domainObjectName="Dept"/>
</context>
</generatorConfiguration>
  •  执行MBG插件的generate目标 

 2、QBC查询

@Test
public void testMBG() throws IOException {
    InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
    SqlSession sqlSession = new
    SqlSessionFactoryBuilder().build(is).openSession(true);
    EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
    EmpExample empExample = new EmpExample();
    //创建条件对象,通过andXXX方法为SQL添加查询添加,每个条件之间是and关系
    empExample.createCriteria().andEnameLike("a").andAgeGreaterThan(20).andDidIsNotNull();
    //将之前添加的条件通过or拼接其他条件
    empExample.or().andSexEqualTo("男");
    List<Emp> list = mapper.selectByExample(empExample);
    for (Emp emp : list) {
        System.out.println(emp);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MyBatis-逆向工程 的相关文章

  • 【无标题】

    Android ADB相关使用 Android ADB相关使用 获取手机安卓系统版本 xff1a adb shell getprop ro build version release获取手机SDK版本 xff1a shell getprop

随机推荐

  • Android APP间授权登录(无需SDK类似微信登录)(源码+解析)

    Android APP间授权登录 无需SDK类似微信登录 源码 43 解析 文章目录 Android APP间授权登录 无需SDK类似微信登录 源码 43 解析 前言一 需求二 A应用 调用者 业务代码与布局三 B应用 授权应用 业务代码
  • Android APP调起小程序流程源码+实例解析

    Android APP调起小程序流程源码 43 实例解析 刚刚完成的一个工作需求功能 APP调起指定小程序 读者比较喜欢有图看效果 再看内容 本文涉及点比较多 1 微信SDK集成 2 微信小程序开发 博主后面有充裕的时间会详细对这些知识点做
  • 安卓Android与H5双向交互MathJax展示数学公式(源码+解析)

    安卓Android与H5双向交互MathJax展示数学公式 源码 43 解析 博主就今天周五又做了个需求 xff08 安卓Android与H5交互 xff09 xff0c 原来上线的功能是服务器配置过来的学习报告 xff08 一个H5页面
  • 1 计算机网络体系结构与OSI参考模型

    文章目录 1 计算机网络概述1 1 计算机网络概念1 2 计算机网络的分类 2 OSI 七层参考模型应用层表示层会话层传输层网络层数据链路层物理层 3 OSI参考模型与网络排错4 OSI参考模型与网络安全5 TCP IP协议和OSI参考模型
  • Android之cardview属性以及阴影处理源码+实例

    Android之cardview属性以及阴影处理 开发中 项目会含有大量的图片需要展示 需要圆角图片 带圆角的组合控件等 本文对cardview使用 以及属性做开发记录 方便后来者查阅 博主也容易忘东西 先看效果图 博主开发的一个VR中控平
  • Android自定义底部弹出窗-dialog(2种实现分析+源码)

    Android自定义底部弹出窗 dialog 2种实现分析 43 源码 上线项目功能抽取 在项目开发中 我们会在许多地方会用到底部自定义弹窗 比如设置 个人账户退出 切换 照片的拍照或者相册的调出 或者一些底部弹出列表 本文对自定义底部弹出
  • 安卓Android阿里OSS上传图片(缩略图使用)三步完成+源码例子

    安卓Android阿里OSS上传图片 缩略图使用 三步完成 43 源码例子 博主在做这块阿里OSS上传 也是踩过不少相关的坑 并且阿里的官方文档也是不是很详细 也翻阅不少文章 感觉有所不足 所以记录本文 希望对后面采坑的读者有所帮助 本文目
  • 编程模拟生产者-消费者模型的进程控制(互斥与同步)

    编程模拟生产者 消费者模型的进程控制 xff08 互斥与同步 xff09 1 1 设计目的 加深对进程概念的理解 xff0c 明确进程和程序的区别进一步认识并发执行的实质用信号量的机制实现进程互斥的方法用信号量的机制实现进程同步的方法 1
  • openGauss 学习环境部署(docker方式),并使用dbeaver进行连接

    1 下载opengauss docker镜像 搜索opengauss镜像源 root 64 mongodb docker search opengauss INDEX NAME DESCRIPTION STARS OFFICIAL AUTO
  • 操作系统学习笔记

    1 1 5 中断和异常 早期的计算机 xff1a 各程序只能串行执行 xff0c 系统资源利用率低 为了解决这个问题 xff0c 人们发明了操作系统 xff0c 引入中断机制 xff0c 实现了多道程序并发执行 发生中断就意味着需要操作系统
  • Windows 下php多版本切换/升级

    之所以写这一篇博客也是因为最近学习Lavavel框架 6 9版本 需要php7 3 4版本 由于之前https blog csdn net Qzhsf article details 103695675安装的是7 1 1 xff0c 所以就
  • CentOS8安装JDK1.8

    文章目录 linux服务器上安装JDK1 8参考文章 linux服务器上安装JDK1 8 起因是在CentOS8上执行jps命令时 xff0c 报错 xff1a root 64 localhost kafka 2 13 2 8 0 jps
  • 基于SpringMVC的web工程的配置实现

    文章目录 使用web xml和SprignMVC配置文件1 新建maven工程 xff1a demo1002 修改pom xml3 添加web模块4 修改web xml xff0c 添加SpringMVC配置文件 xff1a springM
  • Spring之Spring概念

    什么是Spring xff1f 1 Spring是轻量级的开源的JavaEE框架 2 Spring可以解决企业应用开发的复杂性 3 Spring有两个核心 IOC和AOP 1 IOC 控制反转 xff0c 把创建对象过程交给Spring进行
  • 2 计算机网络性能指标

    文章目录 速率带宽吞吐量时延时延带宽积往返时间网络利用率 速率 连接在计算机网络上的主机在数字信道上传送数据位数的速率 xff0c 也称为data rate或bit rate 单位是b s kb s Mb s Gb s 比特 xff08 b
  • Spring之IOC概念

    一 什么是IOC 1 IOC就是控制反转 xff0c 把对象创建和对象之间的调用过程交给Spring进行管理 2 使用IOC目的 之前我们创建对象的方式都是用new的方式创建 xff0c 这个方式有个缺点 xff0c 被创建对象的类的位置一
  • Spring之IOC操作Bena-XML配置文件

    一 什么是操作Bena管理 Bean管理指的是两个操作 1 Spring创建对象 2 Spring注入属性 二 Bean管理操作xml配置文件方式实现 1 基于xml方式创建对象 创建对象的时候默认执行无参构造方法 例 xff1a lt X
  • Spring之IOC操作Bena-XML注入其他类型属性值

    一 字面量 1 注入空值 lt 利用null标签将name属性设置为空值 gt lt property name 61 34 name 34 gt lt null gt lt property gt 2 注入属性包含特殊符号 方法一 xff
  • Spring之AOP

    目录 1 AOP基本概念 2 AOP底层原理 3 AOP相关术语 4 Spring中AOP操作 5 AOP操作 AOP注解 6 AOP操作 AOPXML配置 1 AOP基本概念 1 面向切片 xff08 方面 xff09 编程 xff0c
  • MyBatis-逆向工程

    正向工程 xff1a 先创建Java实体类 xff0c 由框架负责根据实体类生成数据库表 Hibernate是支持正向工程 的 逆向工程 xff1a 先创建数据库表 xff0c 由框架负责根据数据库表 xff0c 反向生成如下资源 xff1