三 后台环境搭建 - 4. 基于 Maven 的 MyBatis 逆向工程

该博客详细介绍了如何使用 Maven 配置 MyBatis 逆向工程,包括IDEA的Maven设置、generatorConfig.xml的创建与配置、解决XML文件报红问题、执行逆向工程的Maven命令以及处理生成实体类缺少构造器和toString方法的问题。同时提到了在不同操作系统中需要注意的路径差异,并提及了atcrowdfunding03-admin-component组件的依赖问题。
摘要由CSDN通过智能技术生成

4. 基于 Maven 的 MyBatis 逆向工程

分支:git checkout -b 3.4.0_reverse

  • atcrowdfunding06-common-reverse 搭建 MyBatis 逆向工程

4.1 pom 配置

img

    <dependencies>
        <!-- 依赖 MyBatis 核心表 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.8</version>
        </dependency>
    </dependencies>

    <!-- 控制 Maven 在构建工程中的相关配置 -->
    <build>

        <!-- 构建过程中用到的插件 -->
        <plugins>

            <!-- 具体插件, 逆向工程的操作是以构建过程中插件形式出现的 -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.0</version>

                <!-- 插件的依赖 -->
                <dependencies>

                    <!-- 逆向工程的核心依赖 -->
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.2</version>
                    </dependency>

                    <!-- 数据库连接池 -->
                    <dependency>
                        <groupId>com.mchange</groupId>
                        <artifactId>c3p0</artifactId>
                        <version>0.9.2</version>
                    </dependency>

                    <!-- MySQL 驱动 -->
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.8</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
4.1.1 IDEA Maven 设置

此处为语雀内容卡片,点击链接查看:https://www.yuque.com/lingchen-bf1rc/hoahc6/eh1tfb

4.2 逆向工程配置文件

generatorConfig.xml

  • 新建 XML 文件

img

  • 命名

img

  • windows 系统配置
<?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>
    <!-- mybatis-generator:generate -->
    <context id="atguiguTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!-- 数据库连接的信息: 驱动类、连接地址、用户名、密码 -->
        <jdbcConnection
                driverClass="com.mysql.jdbc.Driver"
                connectionURL="jdbc:mysql://139.196.56.127:3306/project_crowd"
                userId="root"
                password="root"/>

        <!-- 默认 false. 把 JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,
         为 true 时把 JDBC DECIMAL 和 NUMERIC 类型解析为 java.math.BigDecimal-->
        <javaTypeResolver>
            <property name="forceBigDeecimals" value="false"/>
        </javaTypeResolver>

        <!-- targetProject: 生成 Entity 类的路径 -->
        <javaModelGenerator targetProject=".\src\main\java"
                            targetPackage="com.atguigu.crowd.entity"
        >
            <!-- enableSubPackages: 是否让 schema 作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- targetProject: XxxMapper.xml 映射文件生成的路径 -->
        <sqlMapGenerator targetProject=".\src\main\java"
                         targetPackage="com.atguigu.crowd.mapper">
            <!-- enableSubPackages: 是否让 schema 作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>


        <!-- targetPackage: Mapper 接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetProject=".\src\main\java"
                             targetPackage="com.atguigu.crowd.mapper"

        >
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!-- 数据库表名字和我们的 entity 类对应的映射指定 -->
        <table tableName="t_admin" domainObjectName="Admin"/>
    </context>
</generatorConfiguration>
  • mac 系统设置

    • 不同: mac环境下,\要修改为/
<?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>
  <!-- mybatis-generator:generate -->
  <context id="atguiguTables" targetRuntime="MyBatis3">
    <commentGenerator>
      <!-- 是否去除自动生成的注释 true:是 false:否 -->
      <property name="suppressAllComments" value="true"/>
    </commentGenerator>
    
    <!-- 数据库连接的信息: 驱动类、连接地址、用户名、密码 -->
    <jdbcConnection
                    driverClass="com.mysql.jdbc.Driver"
                    connectionURL="jdbc:mysql://139.196.56.127:3306/project_crowd"
                    userId="root"
                    password="root"/>
    
    <!-- 默认 false. 把 JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,
         为 true 时把 JDBC DECIMAL 和 NUMERIC 类型解析为 java.math.BigDecimal-->
    <javaTypeResolver>
      <property name="forceBigDeecimals" value="false"/>
    </javaTypeResolver>
    
    <!-- targetProject: 生成 Entity 类的路径 -->
    <javaModelGenerator targetProject="./src/main/java"
                        targetPackage="com.atguigu.crowd.entity"
                        >
      <!-- enableSubPackages: 是否让 schema 作为包的后缀 -->
      <property name="enableSubPackages" value="false"/>
      <!-- 从数据库返回的值被清理前后的空格 -->
      <property name="trimStrings" value="true"/>
    </javaModelGenerator>
    
    <!-- targetProject: XxxMapper.xml 映射文件生成的路径 -->
    <sqlMapGenerator targetProject="./src/main/java"
                     targetPackage="com.atguigu.crowd.mapper">
      <!-- enableSubPackages: 是否让 schema 作为包的后缀 -->
      <property name="enableSubPackages" value="false"/>
    </sqlMapGenerator>
    
    
    <!-- targetPackage: Mapper 接口生成的位置 -->
    <javaClientGenerator type="XMLMAPPER"
                         targetProject="./src/main/java"
                         targetPackage="com.atguigu.crowd.mapper"
                         
                         >
      <property name="enableSubPackages" value="false"/>
    </javaClientGenerator>
    
    <!-- 数据库表名字和我们的 entity 类对应的映射指定 -->
    <table tableName="t_admin" domainObjectName="Admin"/>
  </context>
</generatorConfiguration>
  • 生成数据库
4.2.1 报红问题, 配置dtd:

此处为语雀内容卡片,点击链接查看:https://www.yuque.com/lingchen-bf1rc/hoahc6/wl1u4c

4.3 逆向工程的数据

此处为语雀内容卡片,点击链接查看:https://www.yuque.com/lingchen-bf1rc/hoahc6/dbwwra

4.4 执行逆向工程生成操作的 Maven 命令

mybatis-generator:generate

img

报错: The specified target project directory .\src\main\java does not exist

注意: mac环境下,\要修改为/,windows才是
targetProject="./src/main/java

4.4.1 注意实体类没有 构造器和 toString 方法
  • 生成构造器和 toString 方法

    • 右键 -> generate
      • 无参构造器
      • 有参构造器

img

      • toString方法

img

package com.atguigu.crowd.entity;

public class Admin {
    private Integer id;
    
    private String loginAcct;
    
    private String userPswd;
    
    private String userName;
    
    private String email;
    
    private String createTime;
    
    public Admin() {
    }
    
    public Admin(Integer id, String loginAcct, String userPswd, String userName, String email, String createTime) {
        this.id = id;
        this.loginAcct = loginAcct;
        this.userPswd = userPswd;
        this.userName = userName;
        this.email = email;
        this.createTime = createTime;
    }
    
    public Integer getId() {
        return id;
    }
    
    public void setId(Integer id) {
        this.id = id;
    }
    
    public String getLoginAcct() {
        return loginAcct;
    }
    
    public void setLoginAcct(String loginAcct) {
        this.loginAcct = loginAcct == null ? null : loginAcct.trim();
    }
    
    public String getUserPswd() {
        return userPswd;
    }
    
    public void setUserPswd(String userPswd) {
        this.userPswd = userPswd == null ? null : userPswd.trim();
    }
    
    public String getUserName() {
        return userName;
    }
    
    public void setUserName(String userName) {
        this.userName = userName == null ? null : userName.trim();
    }
    
    public String getEmail() {
        return email;
    }
    
    public void setEmail(String email) {
        this.email = email == null ? null : email.trim();
    }
    
    public String getCreateTime() {
        return createTime;
    }
    
    public void setCreateTime(String createTime) {
        this.createTime = createTime == null ? null : createTime.trim();
    }
    
    @Override
    public String toString() {
        return "Admin{" +
            "id=" + id +
            ", loginAcct='" + loginAcct + '\'' +
            ", userPswd='" + userPswd + '\'' +
            ", userName='" + userName + '\'' +
            ", email='" + email + '\'' +
            ", createTime='" + createTime + '\'' +
            '}';
    }
}

4.5 移动/复制 生成的实体类等文件

img

4.6 atcrowdfunding03-admin-component 缺少依赖

img

        <!-- 依赖 MyBatis 核心表 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
          	<version>3.2.8</version>
        </dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值