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

使用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日

相关文章

  • Vue3中插槽(slot)用法汇总(推荐)

    Vue3中插槽(slot)用法汇总(推荐) Vue3中的插槽(slot)是一种强大的功能,用于在组件中定义可复用的模板部分。本攻略将详细介绍Vue3中插槽的用法,并提供两个示例说明。 基本用法 插槽可以在组件的模板中定义,并在组件的使用者中进行填充。以下是插槽的基本用法: <!– 父组件 –> <template> <div…

    other 2023年8月21日
    00
  • Axure怎么制作日历日期选择框效果?

    Axure制作日历日期选择框效果攻略 Axure是一款强大的原型设计工具,可以用来制作交互式的界面原型。下面是使用Axure制作日历日期选择框效果的完整攻略。 步骤一:创建基本框架 首先,我们需要创建一个基本的框架来容纳日历和日期选择器。可以使用Axure的“Dynamic Panel”组件来实现这一点。在页面上拖动一个Dynamic Panel组件,并设置…

    other 2023年7月29日
    00
  • 深入了解Golang包的获取方法

    深入了解Golang包的获取方法 在Golang中,包是组织和复用代码的基本单元。本攻略将详细介绍获取Golang包的方法,包括标准库包和第三方包。 获取标准库包 Golang的标准库包是与Golang一起安装的包,可以直接使用。以下是获取标准库包的方法: 导入包:在代码中使用import语句导入需要的标准库包。例如,要使用fmt包,可以使用以下导入语句: …

    other 2023年10月13日
    00
  • luatrycatch使用

    以下是“luatrycatch使用”的完整攻略: luatrycatch使用 在Lua中,try-catch语句用于捕获和处理异常。Lua的try-catch语句与其他编程语言的try-catch语句略有不同。本攻略将介绍Lua中try-catch语句的基本用法和常见问题。 步骤1:安装Lua 您可以从Lua的官方网站下载最新版本的Lua解释器。下载完成后,…

    other 2023年5月7日
    00
  • C语言宏定义结合全局变量的方法实现单片机串口透传模式

    c\\”, receivedData); // 清空全局变量 receivedData = ‘\\0’; } } } 在上述示例中,当接收到数据时,宏定义`STORE_DATA`会将数据存储到全局变量`receivedData`中。在主函数中,我们通过检查全局变量是否为空来判断是否有新数据接收,然后将接收到的数据打印到串口。 #### 示例2:将接收到的数据…

    other 2023年7月29日
    00
  • laravel5环境隐藏index.php后缀(apache)的方法

    Laravel 5环境隐藏index.php后缀(Apache)的方法攻略 在Laravel 5中,你可以通过配置Apache服务器来隐藏URL中的index.php后缀。下面是一份详细的攻略,包含了两个示例说明。 步骤1:启用mod_rewrite模块 首先,确保你的Apache服务器已经启用了mod_rewrite模块。你可以通过以下命令来检查: sud…

    other 2023年8月6日
    00
  • SpringBoot加载多个配置文件实现dev、product多环境切换的方法

    下面我将详细讲解“SpringBoot加载多个配置文件实现dev、product多环境切换的方法”的完整攻略。 为什么需要多环境切换 在我们开发一个由多人参与的项目时,由于开发环境、测试环境、生产环境等不同的环境下,配置文件的不同,我们需要动态地切换配置环境,才可以顺利进行开发、测试以及发布等操作。而使用SpringBoot可以灵活地预先加载配置,实现多环境…

    other 2023年6月25日
    00
  • 遥感生态指数(rsei)——图像预处理

    以下是关于“遥感生态指数(RSEI)——图像预处理”的完整攻略,包含两个示例。 遥感生态指数(RSEI)——图像预处理 遥感生态指数(RSEI)是一种用于评估生态系统健康状况的指数。在计算RSEI之前,我们需要对遥感图像进行预处理。以下是关于如何进行图像预处理的详细攻略。 1. 图像校正 在进行图像预处理之前,我们需要对遥感图像进行校正。以下是一个示例: i…

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