品优购商城项目(一)mybatis逆向工程

品优购商城项目(一):MyBatis逆向工程

在现代web开发中,数据库的使用是必不可少的一部分。而对于Java程序员来说,MyBatis是一个使用广泛的持久层框架。在使用MyBatis的过程中,我们可以手动编写SQL语句和映射文件,但是这样会带来很多的繁琐和重复的工作。

为了避免重复工作,MyBatis提供了逆向工程的功能。逆向工程是根据数据库表生成对应的Java实体类、Mapper接口以及Xml文件的工具,可以大大降低手动编写代码的工作量。本文将介绍如何使用逆向工程生成代码,以及其中的注意事项。

准备工作

在操作逆向工程之前,我们需要创建好数据库和表,并向表中插入若干条数据。本文不会过多讲述数据库和表的创建过程,可参考相关资料进行学习。这里假设我们有一个名为 pyg 的数据库,其中有一个 tb_brand 表,表的结构如下:

CREATE TABLE `tb_brand` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `first_char` varchar(1) DEFAULT NULL,
  `image` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;

配置逆向工程

MyBatis提供了一个叫做mybatis-generator的插件来执行逆向工程,我们需要按照以下步骤进行配置:

  1. pom.xml 文件中,添加 mybatis-generator-maven-plugin 插件的依赖:
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.4.0</version>
</dependency>
  1. pom.xml 文件中,添加 generatorConfig.xml 配置文件:
<build>
    <plugins>
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.4.0</version>
            <configuration>
                <configurationFile>
                    src/main/resources/generatorConfig.xml
                </configurationFile>
                <overwrite>true</overwrite>
                <verbose>true</verbose>
            </configuration>
            <dependencies>
                <!-- MySQL驱动 -->
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>8.0.23</version>
                </dependency>
                <!-- MyBatis逆向工程 -->
                <dependency>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-core</artifactId>
                    <version>1.4.0</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

这里需要注意以下几点:

  • <configuration> 元素中,configurationFile 属性指定逆向工程的配置文件路径。本例中配置文件路径为 src/main/resources/generatorConfig.xml
  • <overwrite> 属性指定是否覆盖已有的代码文件。设为true时表示直接覆盖;
  • <dependencies> 元素中需要引入MySQL驱动和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>
    <!-- 数据库驱动类路径 -->
    <classPathEntry
            location="mysql-connector-java-8.0.23.jar" />
    <context id="MySQL"
             targetRuntime="MyBatis3">
        <!-- jdbc配置 -->
        <jdbcConnection
                driverClass="com.mysql.cj.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/pyg?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;useUnicode=true&amp;characterEncoding=utf-8"
                userId="root"
                password="root">
        </jdbcConnection>

        <!-- 生成Java文件的路径 -->
        <javaModelGenerator
                targetPackage="com.pinyougou.pojo"
                targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- 生成Mapper接口文件的路径 -->
        <sqlMapGenerator
                targetPackage="com.pinyougou.mapper"
                targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!-- 生成对应Mapper XML文件的路径 -->
        <javaClientGenerator
                type="XMLMAPPER"
                targetPackage="com.pinyougou.mapper"
                targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!-- 要生成实体类、Mapper接口以及Mapper XML文件的数据库表 -->
        <table tableName="tb_brand"/>
    </context>
</generatorConfiguration>

这里需要注意以下几点:

  • classPathEntry 元素中指定驱动程序的位置;
  • jdbcConnection 元素中的属性值表示数据库的连接信息;
  • javaModelGenerator 元素中的 targetPackage 属性表示Java实体类的生成路径;
  • sqlMapGenerator 元素中的 targetPackage 属性表示Mapper接口的生成路径;
  • javaClientGenerator 元素中的 targetPackage 属性表示Mapper XML文件的生成路径;
  • table 元素指定要生成代码的数据库表名。

执行逆向工程

配置文件创建好之后,我们就可以使用逆向工程生成代码了。在命令行中输入以下命令:

$ mvn mybatis-generator:generate

这条命令会让 Maven 执行逆向工程的流程,在 target 目录下生成 Java 实体类、Mapper 接口以及 Mapper XML 文件。完成后,我们可以自由地对生成的代码进行修改和调整。

结论

本文介绍了如何使用MyBatis逆向工程生成代码,大大减轻了手写代码的工作量。对于大量使用MyBatis的应用程序而言,逆向工程是一个功不可没的利器。值得一提的是,逆向工程虽然有着自动化的特点,但是在生成代码后仍需要针对代码的逻辑进行适当的调整和修改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:品优购商城项目(一)mybatis逆向工程 - Python技术站

(0)
上一篇 2023年3月28日
下一篇 2023年3月28日

相关文章

  • vue 为什么要封装全局组件引入

    Vue 为什么要封装全局组件引入? 在使用 Vue 开发项目时,我们会遇到多个页面需要使用同一个组件的情况,如果每次在使用的页面中都 import 组件并注册,那么会增加代码的重复性,降低代码的可维护性。因此,Vue 提供了全局组件的注册方式,可以在任何组件中直接使用,方便不同组件之间的共享。 但是全局组件的注册过程仍然需要在每个组件中重复编写,且代码在多次…

    other 2023年6月25日
    00
  • win10怎么去掉radeon设置? radeon右键菜单删去方法

    以下是详细讲解“win10怎么去掉radeon设置?radeon右键菜单删去方法”的完整攻略。 问题简述 在使用Windows 10系统时,右键点击桌面、任务栏或文件夹时,可能会出现AMD的Radeon设置选项。有些用户不需要这个选项,想要去掉它。那么如何在Windows 10系统中去掉Radeon设置呢? 解决方案 方案1:卸载AMD Radeon软件 如…

    other 2023年6月27日
    00
  • linux命令之rpm安装命令

    Linux命令之rpm安装命令 在Linux系统中,我们可以使用rpm命令来安装、升级和卸载RPM包。RPM包是一种常见的软件包,它包含了软件的二进制文件、配置文件、文档等内容。本攻略将详介绍rpm命令的使用方法,包基本概念、安装配置和示例说明。 基本概念 RPM(Red Hat Package Manager)是一种常见的软件包格式它包含了软件的二进制文件…

    other 2023年5月6日
    00
  • javascript 变量声明 var,let,const 的区别

    JavaScript 变量声明 var, let, const 的区别 在 JavaScript 中,我们可以使用 var、let 和 const 来声明变量。这三种声明变量的方式有一些区别,下面将详细讲解它们之间的差异。 var var 是在 ES5 中引入的变量声明关键字。它有以下特点: 函数作用域:var 声明的变量的作用域是函数级别的,也就是说,它们…

    other 2023年8月20日
    00
  • 轻松5句话解决JavaScript的作用域

    轻松5句话解决JavaScript的作用域攻略 作用域是JavaScript中一个重要的概念,它决定了变量和函数在代码中的可见性和访问性。下面是一个简单的攻略,帮助你理解和解决JavaScript作用域的问题。 全局作用域:在函数外部定义的变量和函数具有全局作用域,可以在代码的任何地方访问。例如: “`javascript var globalVariab…

    other 2023年8月19日
    00
  • SpringBoot实现自定义条件注解的代码示例

    下面就是关于“SpringBoot实现自定义条件注解的代码示例”的完整攻略: 1. 规划需求 首先需要明确需求,我们要实现一个自定义的条件注解,根据这个条件注解来判断是否执行某些操作。比如在某个项目中,我们需要在集成测试环境下才执行某些特定的测试用例,那就可以利用自定义的条件注解来实现。 在这个示例中,我们将会实现一个自定义的条件注解 @EnableMyFe…

    other 2023年6月25日
    00
  • fiddler系列教程2:手机抓包图文教程

    Fiddler系列教程2: 手机抓包图文教程 在进行移动端应用开发时,我们经常需要对APP进行网络请求分析,以便了解APP的运行状态以及接口的使用。此时,抓包就是一种非常好的方式。 本教程将以步骤为主,手把手教你如何使用Fiddler进行手机抓包。其中,我们将同时介绍iOS和Android两种系统的操作方法。 1. 确定手机与电脑处于同一局域网下 首先,将手…

    其他 2023年3月28日
    00
  • redis3.2配置文件redis.conf详细说明

    一、介绍 Redis 是开源的高性能 key-value 存储系统,常用作缓存、消息队列等。Redis 的配置文件是 redis.conf,对于开发者和运维来说,了解和修改 redis.conf 文件非常重要。 本文将会对 Redis3.2 配置文件 redis.conf 的各配置项进行详细介绍,并提供至少两条示例说明。 二、常用的 redis.conf 配…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部