Mybatis逆工程的使用

MyBatis逆向工程是一种自动生成Java代码的方式,可以根据数据库表结构自动生成MyBatis Mapper接口、POJO类以及映射XML文件等文件。本文将从以下几个方面介绍MyBatis逆向工程的使用方法及示例:

  1. 配置工程文件

在Maven项目的pom.xml文件中,引入mybatis-generator插件,具体配置如下:

<plugins> 
  <plugin> 
    <groupId>org.mybatis.generator</groupId> 
    <artifactId>mybatis-generator-maven-plugin</artifactId> 
    <version>1.3.7</version> 
    <dependencies> 
      <dependency> 
        <groupId>mysql</groupId> 
        <artifactId>mysql-connector-java</artifactId> 
        <version>8.0.20</version> 
      </dependency> 
    </dependencies> 
    <executions> 
      <execution> 
        <phase>package</phase> 
        <goals> 
          <goal>mybatis-generator</goal> 
        </goals> 
      </execution> 
    </executions> 
    <configuration> 
      <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> 
      <overwrite>true</overwrite> 
      <verbose>true</verbose> 
    </configuration> 
  </plugin> 
</plugins>
  1. 编写配置文件

在项目中新建generatorConfig.xml文件,配置MyBatis逆向工程所需参数,如下所示:

<?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>
  <!-- 数据库驱动 -->
  <classPathEntry location="C:\Program Files\MySQL\Connector J 8.0\mysql-connector-java-8.0.20.jar" />

  <context id="DB2Tables" targetRuntime="MyBatis3">
    <!-- 数据库连接 -->
    <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
      connectionURL="jdbc:mysql://localhost:3306/test?useSSL=false&amp;serverTimezone=GMT&amp;useLegacyDatetimeCode=false"
      userId="root" password="root1234">
    </jdbcConnection>

    <!-- Java数据模型 -->
    <javaModelGenerator targetPackage="top.xiesen.mybatisgenerator.model"
      targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />    
    </javaModelGenerator>

    <!-- Mapper映射文件 -->
    <sqlMapGenerator targetPackage="top.xiesen.mybatisgenerator.mapper"
      targetProject=".\src\main\resources">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

    <!-- DAO接口 -->
    <javaClientGenerator type="XMLMAPPER"
      targetPackage="top.xiesen.mybatisgenerator.mapper"
      targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    <!-- 指定数据库表 -->
    <table schema="test" tableName="t_user"></table>
    <table schema="test" tableName="t_student"></table>
  </context>
</generatorConfiguration>
  1. 运行MyBatis逆向工程

运行命令mvn mybatis-generator:generate来生成Java和XML文件。

  1. 查看生成结果

生成的文件都存储在指定的目录中,包括Mapper接口、POJO类以及映射XML文件等文件。可以直接在项目中使用这些文件进行数据库操作,如下所示:

// 实例化Mapper类
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

// 增加数据
User user = new User();
user.setUsername("admin");
user.setPassword("admin123");
userMapper.insert(user);

// 删除数据
userMapper.deleteByPrimaryKey(1L);

// 更新数据
User user = userMapper.selectByPrimaryKey(2L);
user.setPassword("newpassword");
userMapper.updateByPrimaryKey(user);

// 查询数据
List<User> userList = userMapper.selectAll();

示例一:生成单个表的Java文件

下面是生成单个表的Java文件,只需要在generatorConfig.xml文件中添加一个

标签即可。

<generatorConfiguration>
  <context id="MysqlTables" targetRuntime="MyBatis3">
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
       connectionURL="jdbc:mysql://localhost:3306/example?useUnicode=true&amp;characterEncoding=utf-8&amp;allowMultiQueries=true&amp;useSSL=false"
       userId="root"
       password="root1234">
    </jdbcConnection>

    <javaModelGenerator targetPackage="com.example.model"
        targetProject=".\src\main\java">
        <property name="enableSubPackages" value="true" />
    </javaModelGenerator>

    <sqlMapGenerator targetPackage="com.example.mapper"
        targetProject=".\src\main\resources">
        <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

    <javaClientGenerator type="XMLMAPPER"
        targetPackage="com.example.mapper"
        targetProject=".\src\main\java">
        <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    <!--指定生成某张表-->
    <table tableName="users"></table>
  </context>
</generatorConfiguration>

示例二:生成所有表的Java文件

下面是生成所有表的Java文件,只需要在generatorConfig.xml文件中添加一个标签即可。

<generatorConfiguration>
  <context id="MysqlTables" targetRuntime="MyBatis3">
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
       connectionURL="jdbc:mysql://localhost:3306/example?useUnicode=true&amp;characterEncoding=utf-8&amp;allowMultiQueries=true&amp;useSSL=false"
       userId="root"
       password="root1234">
    </jdbcConnection>

    <javaModelGenerator targetPackage="com.example.model"
        targetProject=".\src\main\java">
        <property name="enableSubPackages" value="true" />
    </javaModelGenerator>

    <sqlMapGenerator targetPackage="com.example.mapper"
        targetProject=".\src\main\resources">
        <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

    <javaClientGenerator type="XMLMAPPER"
        targetPackage="com.example.mapper"
        targetProject=".\src\main\java">
        <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    <!--生成所有表-->
    <table schema="example"></table>
  </context>
</generatorConfiguration>

以上是MyBatis逆向工程的使用方法及示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mybatis逆工程的使用 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • MyBatis-Plus框架整合详细方法

    当我们将Spring Boot和MyBatis框架结合时,通常使用MyBatis-Plus作为MyBatis框架的扩展库。MyBatis-Plus简化了MyBatis的常见操作,使开发人员更轻松地完成数据访问层的开发。在下面的攻略中,我将会为大家讲解根据MyBatis-Plus官方文档整合MyBatis-Plus框架的详细方法。 1. 添加Maven依赖 在…

    Java 2023年5月20日
    00
  • Java对象转换的方案分享

    下面就给大家详细讲解一下Java对象转换的方案分享,内容主要包括以下几个方面: 为什么需要Java对象转换 常见的Java对象转换方式和工具 示例说明:使用Jackson工具进行对象转换 示例说明:手动编写代码进行对象转换 1. 为什么需要Java对象转换 Java中的对象通常有很多种类型,比如字符串、数字、日期、自定义对象等等。在编程的过程中,我们可能需要…

    Java 2023年5月26日
    00
  • SpringBoot学习篇之@Valid与@Validated的区别

    下面是SpringBoot学习篇之@Valid与@Validated的区别的攻略。 一、@Valid和@Validated的作用 在SpringMVC中,@Valid和@Validated注解全部用于校验参数。使用它们可以大大简化代码和提高代码的可读性。 二、@Valid和@Validated的区别 @Valid是JSR-303/JSR-349规范中的注解,…

    Java 2023年5月20日
    00
  • java图形界面编程实战代码

    Java图形界面编程是Java中一个重要的领域,Java程序员需要掌握相关技能才能实现优秀的GUI程序。下面是实战Java图形界面编程的完整攻略: 1. 确定开发工具 在开始编写Java图形界面程序之前,程序员需要选择合适的开发工具。常用的Java GUI开发工具包括Swing、JavaFX、AWT等,同时还需要选择Java IDE,如Eclipse、Int…

    Java 2023年5月23日
    00
  • Android实现APP自动更新功能

    让我来讲解一下,“Android实现APP自动更新功能”的完整攻略。 1. 什么是APP自动更新功能? APP自动更新功能是指当我们开发的APP有新版本发布时,用户打开APP后会自动检测更新并提示用户更新。此功能可以为用户提供最新的APP版本,同时也可以让应用开发者方便地推出新版本并使用户及时更新升级。 2. 如何实现APP自动更新功能? 要实现APP自动更…

    Java 2023年5月23日
    00
  • java对象数组实现学生信息管理系统

    Java对象数组实现学生信息管理系统攻略 在Java中,我们可以使用对象数组来实现一个学生信息管理系统。我们可以将学生信息作为一个对象,使用对象数组来存储多个学生的信息。下面是实现学生信息管理系统的完整攻略。 1. 定义学生信息类 我们首先需要定义一个学生信息类,用于存储学生的信息,包括姓名、年龄、性别、学号等。以下是一个示例: public class S…

    Java 2023年5月24日
    00
  • Spring Integration概述与怎么使用详解

    Spring Integration概述 Spring Integration是Spring框架的一个扩展,提供了一种集成不同系统、应用、协议和数据格式的方式。它提供了许多现成的组件和模板,使得实现企业级集成变得更加便捷和高效。 Spring Integration采用基于消息的异步通信模型,所有的组件都是被设计成异步的最终接收者,而消息则负责在组件之间传递…

    Java 2023年5月19日
    00
  • Java实现的傅里叶变化算法示例

    我很高兴为你讲解“Java实现的傅里叶变化算法示例”的完整攻略。下面是详细过程: 1. 傅里叶变换简介 傅里叶变换是数字信号处理中一种非常常见的算法。它可以将时域信号转换为频域信号,方便我们分析信号的频谱结构和特性。在实际应用中,傅里叶变换在图像处理、音频信号处理等领域有着广泛的应用。傅里叶变换可以表示为以下形式: $$X(k) = \sum_{n=0}^{…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部