使用Spring Boot Mybatis 搞反向工程的步骤

yizhihongxing

使用Spring Boot和Mybatis进行反向工程是一个非常方便的方法,通过几个简单的步骤可以自动生成数据库操作的代码,这里我详细讲解一下具体的步骤。

1. 引入依赖

首先,需要在Maven或Gradle中添加对Spring Boot和Mybatis的依赖。例如,在Maven中可以如下添加:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <version>2.4.4</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
        <version>2.4.4</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.4</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>
   ...
</dependencies>

2. 配置数据库连接

其次,需要在application.properties或application.yml中配置数据库连接。例如,在properties中的配置如下:

spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

3. 配置反向工程

接着,需要在配置文件中添加Mybatis Generator的配置。这里我们选择使用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>
  <context id="demo" targetRuntime="MyBatis3">
    <commentGenerator>
      <property name="suppressDate" value="true"/>
      <property name="suppressAllComments" value="true"/>
    </commentGenerator>

    <jdbcConnection driverClass="${spring.datasource.driver-class-name}"
                    connectionURL="${spring.datasource.url}"
                    userId="${spring.datasource.username}"
                    password="${spring.datasource.password}">
    </jdbcConnection>

    <javaTypeResolver>
      <property name="forceBigDecimals" value="false"/>
    </javaTypeResolver>

    <javaModelGenerator targetPackage="com.example.demo.entity" targetProject="src/main/java">
      <property name="enableSubPackages" value="true"/>
      <property name="trimStrings" value="true"/>
    </javaModelGenerator>

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

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

    <table schema="" tableName="demo" domainObjectName="DemoEntity">
    </table>
  </context>
</generatorConfiguration>

其中,jdbcConnection节点中的配置需要使用上面在application.properties中配置的数据源信息。javaModelGenerator节点中的targetPackagetargetProject分别指定生成的model类的包名和存放位置。sqlMapGenerator节点中的targetPackagetargetProject描述了xml映射文件的包名和存放位置。javaClientGenerator节点中的type表示使用XML mapper方式生成mapper接口。

4. 运行反向工程

最后,使用如下命令运行反向工程插件即可自动生成代码:

mvn mybatis-generator:generate

这个操作会根据配置文件信息自动生成mapper接口、实体类和xml映射文件。

示例一:

假设我们已经创建好了demo数据库,里面有一张表users,它包含3个字段:idusernamepassword。现在我们要使用Mybatis Generator自动生成该表的mapper接口和实体类文件。

  1. 创建Maven项目并添加上述依赖和配置。
  2. 将如下配置存储为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>
  <context id="demo" targetRuntime="MyBatis3">
    <commentGenerator>
      <property name="suppressDate" value="true"/>
      <property name="suppressAllComments" value="true"/>
    </commentGenerator>

    <jdbcConnection driverClass="${spring.datasource.driver-class-name}"
                    connectionURL="${spring.datasource.url}"
                    userId="${spring.datasource.username}"
                    password="${spring.datasource.password}">
    </jdbcConnection>

    <javaTypeResolver>
      <property name="forceBigDecimals" value="false"/>
    </javaTypeResolver>

    <javaModelGenerator targetPackage="com.example.demo.entity" targetProject="src/main/java">
      <property name="enableSubPackages" value="true"/>
      <property name="trimStrings" value="true"/>
    </javaModelGenerator>

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

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

    <table schema="" tableName="users" domainObjectName="User">
    </table>
  </context>
</generatorConfiguration>
  1. 在终端中执行mvn mybatis-generator:generate,生成后查看src/main/java/com/example/demo/mapper路径下的UserMapper.java文件和src/main/java/com/example/demo/entity路径下的User.java文件,这两个文件就是Mybatis Generator自动生成的文件。

示例二:

假设我们现在要使用Mybatis Generator自动生成MySQL数据库test中的所有表的mapper接口和实体类文件。

  1. 创建Maven项目并添加上述依赖和配置。
  2. 将如下配置存储为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">

<!-- 配置 Mybatis Generator 使用 START -->
<generatorConfiguration>
    <context id="mysql" targetRuntime="MyBatis3">
        <!-- 数据库链接配置 -->
        <jdbcConnection driverClass="${spring.datasource.driver-class-name}"
                        connectionURL="${spring.datasource.url}"
                        userId="${spring.datasource.username}"
                        password="${spring.datasource.password}"
        />

        <!-- 配置注释生成器 -->
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <property name="suppressAllComments" value="true" />
            <property name="addRemarkComments" value="true" />
        </commentGenerator>

        <!-- 定义 Java 类型解析器 -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- 配置 Model 类型生成器 -->
        <javaModelGenerator targetPackage="com.example.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
            <!--
                开启 builder 模式,生成实体类的带 builder 的构造方法,
                使用 @Builder 注解生成的类,规范了 JavaBean 的写法
            -->
            <property name="builder" value="true"/>
        </javaModelGenerator>

        <!-- 配置 Mapper.xml 文件生成器 -->
        <sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!-- 配置 Mapper 接口文件生成器 -->
        <javaClientGenerator targetPackage="com.example.mapper" targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!-- 配置生成哪些表的代码 -->
        <table tableName="tb_one" domainObjectName="TbOne"
               mapperName="TbOneMapper"
               enableCountByExample="true"
               enableUpdateByExample="true"
               enableDeleteByExample="true"
               enableSelectByExample="true"
               selectByExampleQueryId="true"
        />

        <table tableName="tb_two" domainObjectName="TbTwo"
               mapperName="TbTwoMapper"
               enableCountByExample="true"
               enableUpdateByExample="true"
               enableDeleteByExample="true"
               enableSelectByExample="true"
               selectByExampleQueryId="true"
        />
    </context>
</generatorConfiguration>
<!-- 配置 Mybatis Generator 使用 END -->
  1. 在终端中执行mvn mybatis-generator:generate,生成后查看src/main/java/com/example/mapper路径下的所有mapper接口文件和src/main/java/com/example/entity路径下的所有实体类文件,这些文件就是Mybatis Generator自动生成的文件。

以上就是使用Spring Boot和Mybatis进行反向工程的详细步骤,希望可以对您有所帮助。

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

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 详解vue中使用protobuf踩坑记

    详解Vue中使用Protobuf踩坑记 1. 什么是Protobuf Protobuf全称为Protocol Buffers,是一种由Google开发的数据序列化协议。 Protobuf支持不同语言之间的数据传输,可以在不同的系统之间高效地传递数据。 Protobuf定义的数据结构,可以通过.proto文件来描述。使用特定工具库可以方便地在不同编程语言中使用…

    other 2023年6月26日
    00
  • Python即时网络爬虫项目: 内容提取器的定义

    Python即时网络爬虫项目: 内容提取器的定义 网络爬虫是一种自动化程序,可按照预定规则自动抓取指定网站的数据。不过,在获取网站数据后,我们需要从中提取出有用的内容。本文介绍的是 Python 即时网络爬虫项目中关于内容提取器的定义。 内容提取器是什么? 内容提取器是一种用于从网页中提取特定数据的程序。与页面解析器不同,内容提取器专注于提取内容而不是解析页…

    其他 2023年3月28日
    00
  • 鸿蒙 HarmonyOS 3.1 开发者 Beta 版本开启公测招募 首批仅限华为 P50 / Pro

    下面是针对“鸿蒙 HarmonyOS 3.1 开发者 Beta 版本开启公测招募 首批仅限华为 P50 / Pro”的完整攻略: 一、首先了解鸿蒙 HarmonyOS 3.1 鸿蒙 HarmonyOS 3.1 是华为公司推出的新一代分布式操作系统,其最大的特点是可以支持多种设备类型和平台,包括手机、平板电脑、电视、可穿戴设备、智能家居等,可在不同的设备之间进…

    other 2023年6月26日
    00
  • springboot嵌套子类使用方式—前端与后台开发的注意事项

    针对这个话题,我来给出一份完整的攻略,如下: SpringBoot嵌套子类使用方式 1. 什么是SpringBoot子类 SpringBoot子类是指在SpringBoot中创建一个普通的POJO类,该类可以嵌套在主类中。SpringBoot会自动将该子类的所有Bean注入到主类中。这对于大型项目而言非常有用,因为可将子类定义为与具体业务无关的通用类(例如:…

    other 2023年6月26日
    00
  • 在PostgreSQL中实现递归查询的教程

    在PostgreSQL中,可以通过使用递归查询来处理具有树形结构的数据。递归查询通常用于查询一个表中与某个特定行相关联的所有行,或者用于搜索多层级的数据结构,如组织架构、论坛帖子等。以下是实现递归查询的完整攻略。 第一步:创建包含树形结构数据的表 为了演示递归查询的用法,首先需要创建一个包含树形结构数据的表。例如,以下是一个包含员工信息的表,其中某些员工具有…

    other 2023年6月27日
    00
  • weblogic服务器的简单使用(一)

    WebLogic服务器的简单使用(一) WebLogic是一款Java应用服务器,可以用于部署和运行Java应用程序。本文将介绍如何使用WebLogic服务器,包括安装WebLogic服务器、创建域、部署应用程序等。 安装WebLogic服务器 在使用WebLogic服务器之前,需要先安装WebLogic服务器。可以从Oracle官网(https://www…

    other 2023年5月5日
    00
  • 关于组装:x86-64中movq和movabsq之间的区别

    在x86-64汇编语言中,movq和movabsq都是用于将数据从一个位置移动到另一个位置的指令,但它们之间有一些区别。以下是关于movq和movabsq的详细攻略: movq movq指令用于将数据从一个位置移动到一个位置,其中源和目标操作数都是64位的。movq指令可以用于寄存器之间的数据传输,也可以用于存器和内存之间的数据传输。movq指令的操作数必须…

    other 2023年5月8日
    00
  • Winrar右键没有压缩选项怎么办?Winrar右键没有压缩选项找回方法

    如果在Windows中安装了Winrar压缩软件,但是在右键菜单中却没有出现“压缩”或“添加到已压缩文件”等Winrar压缩选项,可能会让你感到困惑。以下是找回Winrar右键菜单压缩选项的方法。 方法1:检查Winrar设置 打开Winrar软件,在菜单栏中单击“选项”。 在弹出的“设置”窗口中,选择“集成”,确保“解压”和“压缩”选项都被勾选。 确认之后…

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