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

yizhihongxing

品优购商城项目(一):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日

相关文章

  • yum安装命令的使用方法

    Yum安装命令的使用方法 Yum是一种在Linux系统上用于管理软件包的工具。以下是使用Yum安装命令的详细步骤: 更新软件包列表 在执行安装命令之前,建议先更新软件包列表,以确保安装的软件包是最新的。使用以下命令更新软件包列表: shell sudo yum update 搜索软件包 如果你知道要安装的软件包的名称,可以使用以下命令搜索软件包: shell…

    other 2023年10月13日
    00
  • win10 Build 10041技术预览版官方镜像下载地址

    Win10 Build 10041 技术预览版官方镜像下载地址攻略 Win10 Build 10041 是 Windows 10 的技术预览版,本攻略将详细介绍如何获取官方镜像下载地址。 步骤一:访问官方网站 首先,你需要访问微软官方网站以获取 Win10 Build 10041 技术预览版的官方镜像下载地址。以下是示例说明: 打开你的网络浏览器,输入微软官…

    other 2023年8月4日
    00
  • C++运算符重载与多继承及二义性详解

    C++运算符重载与多继承及二义性详解 在 C++ 语言中,运算符重载是一种强大的特性。它允许程序员重新定义已有的运算符,以适应类的特殊需求。在 C++ 中,运算符重载既可以用来重载内置运算符,例如加号 + 或减号 -,也可以用来定义新的运算符。 运算符重载的语法和约束 运算符重载的语法比较灵活,但是也有很多约束。以下是一些通用的规则: 运算符重载必须至少有一…

    other 2023年6月26日
    00
  • Python中type的构造函数参数含义说明

    完整攻略:Python中type的构造函数参数含义说明 type是Python中的一个内置函数,常被用来获取对象的类型信息,在Python中,一切皆对象,因此type函数非常常用。type函数的构造函数参数可以用于创建新的对象类型,从而帮助我们在程序运行时动态的创建类。 type构造函数的完整语法如下: type(name, bases, dict) 在这个…

    other 2023年6月26日
    00
  • Linux中mkdir函数与Windows中_mkdir函数的区别

    Linux中的mkdir函数与Windows中的_mkdir函数虽然在功能上都是用于创建目录,但由于两种操作系统的文件系统和API实现方式不同,所以在使用时会有一些区别。 在Linux系统下,mkdir函数的原型如下: int mkdir(const char *pathname, mode_t mode); 其中,pathname参数表示新创建目录的路径,…

    other 2023年6月26日
    00
  • Android开发笔记之Fragment的使用教程

    Android开发笔记之Fragment的使用教程 什么是Fragment? Fragment是Android中的一个重要概念,它可以看作是Activity中的一个模块化组件,用于构建灵活且可重用的用户界面。通过使用Fragment,我们可以将界面的不同部分分解成独立的模块,使得我们可以更好地管理和组织界面的布局和逻辑。 Fragment的使用步骤 步骤1:…

    other 2023年9月7日
    00
  • 为什么鼠标被禁用了?网页鼠标右键被禁用解决方法

    为什么鼠标被禁用了?网页鼠标右键被禁用解决方法 问题描述 在一些网页上,我们可能会发现鼠标右键被禁用了。这一般是由网页开发者通过JavaScript代码实现的。但是,有时候我们确实需要使用鼠标右键进行一些操作,这时候该怎么办呢? 解决方法 我们可以通过以下几种方法来解决鼠标右键被禁用的问题: 方法一:使用快捷键 如果你需要复制或粘贴文本,可以使用快捷键来实现…

    other 2023年6月27日
    00
  • matlab中copyfile的使用

    Matlab中copyfile的使用 在Matlab中,copyfile函数可以用来复制文件或目录。本篇文章将介绍如何使用Matlab中的copyfile函数来复制文件以及常见的错误和处理方式。 复制文件 通过copyfile函数可以复制单个文件: copyfile(‘source_file.txt’, ‘destination_file.txt’) 上述代…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部