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逆向工程的使用方法及示例。

阅读剩余 90%

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

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

相关文章

  • Springboot 2.6集成redis maven报错的坑记录

    下面是“Spring Boot 2.6集成Redis Maven报错的坑记录”的完整攻略: 问题描述 在使用Spring Boot 2.6版本集成Redis时,使用Maven安装Redis报错,提示找不到io.lettuce:lettuce-core:jar:6.2.5.RELEASE。 解决方案 修改pom.xml中的依赖 在pom.xml文件中添加io.…

    Java 2023年6月2日
    00
  • 浅谈springmvc的DispatcherServlet分析

    浅谈SpringMVC的DispatcherServlet分析 SpringMVC是一种基于MVC模式的Web框架,它可以帮助我们快速开发Web应用程序。在SpringMVC中,DispatcherServlet是一个核心组件,它负责接收所有的HTTP请求,并将请求分发给相应的处理器。本文将详细讲解SpringMVC的DispatcherServlet,并提…

    Java 2023年5月17日
    00
  • spring scheduled单线程和多线程使用过程中的大坑

    介绍 在使用Spring框架的Scheduled定时任务功能时,我们可以通过配置ThreadPoolTaskExecutor来实现多线程执行定时任务。但是在使用过程中,可能会遇到一些坑,比如在多线程执行过程中,由于任务执行的时间过长,而ThreadPoolTaskExecutor线程池中可用线程数量过少,可能造成任务阻塞,从而导致已经执行的任务无法被及时释放…

    Java 2023年5月19日
    00
  • jQuery ajaxForm()的应用

    当需要通过 AJAX 方式向服务器提交表单数据时,jQuery 提供了方便的方法 ajaxForm()。下面是该方法的详细介绍及应用攻略。 ajaxForm() 方法的使用 基本语法 $(selector).ajaxForm(options); 其中,selector 是表单的选择器,options 是一个对象,包含了一些可选参数及回调函数,具体参数如下: …

    Java 2023年6月16日
    00
  • java模拟hibernate一级缓存示例分享

    让我为您简单讲解一下如何使用Java模拟Hibernate一级缓存。 一、什么是Hibernate一级缓存 Hibernate是一个Java持久层框架,其缓存机制为应用程序和数据库之间搭建了一个缓冲层,用于提高性能并优化数据库资源的使用。Hibernate一级缓存,也称为session缓存,是Hibernate提供的默认缓存机制。当运行应用程序时,Hiber…

    Java 2023年5月20日
    00
  • Mybatis-plus中QueryWrapper的多种用法小结

    “Mybatis-plus中QueryWrapper的多种用法小结”是一篇关于Mybatis-plus中QueryWrapper使用方法的文章。在介绍QueryWrapper的多种用法之前,我们需要了解一下QueryWrapper的基本概念。 QueryWrapper基本概念 QueryWrapper是Mybatis-plus提供的一种条件构造器,可以用于构…

    Java 2023年5月20日
    00
  • MyBatis配置的应用与对比jdbc的优势

    MyBatis是一种开源的ORM(Object Relational Mapping)框架,能够将数据库中的数据映射到Java对象中。MyBatis的配置文件中描述了如何连接数据库、SQL语句和Java对象映射的细节。相比于普通的JDBC操作,MyBatis具有以下优势: 简化数据库操作MyBatis可以通过配置文件来完成大部分的增删改查操作,只需关注SQL…

    Java 2023年5月20日
    00
  • SpringBoot Application注解原理及代码详解

    SpringBootApplication注解原理及代码详解 1. Spring Boot介绍 ​ Spring Boot是一个应用于快速创建基于Spring框架的应用程序的工具。它大大简化了Spring应用程序的搭建和开发流程, 十分适合用于微服务开发等快速迭代的场景。 2. SpringBootApplication注解 ​ SpringBootAppl…

    Java 2023年5月15日
    00
合作推广
合作推广
返回顶部