三 后台环境搭建
4. 基于 Maven 的 MyBatis 逆向工程
分支:git checkout -b 3.4.0_reverse
- atcrowdfunding06-common-reverse 搭建 MyBatis 逆向工程
4.1 pom 配置
<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 文件
- 命名
- 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
报错: The specified target project directory .\src\main\java does not exist
注意: mac环境下,\要修改为/,windows才是
targetProject="./src/main/java
4.4.1 注意实体类没有 构造器和 toString 方法
-
生成构造器和 toString 方法
-
- 右键 -> generate
-
-
- 无参构造器
- 有参构造器
-
-
-
- toString方法
-
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 移动/复制 生成的实体类等文件
4.6 atcrowdfunding03-admin-component 缺少依赖
<!-- 依赖 MyBatis 核心表 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>