Design and Implementation of an Online Course Purchase System(04)

Reverse engineering Mybatis Generator code generation

Posted by Chen Xingxu on June 3, 2020

易课寄在线购课系统开发笔记(四)–逆向工程 Mybatis Generator代码生成

相关资源

https://gitee.com/telyfox/generatorSqlmapCustom

生成步骤

generatorSqlmapCustom 我已经上传到了码云中,首先进入相关资源中我给出的仓库地址

克隆/下载 -> HTTPS -> 复制

打开 IntelliJ IDEA,点击 Get from Version Control

在 URL 一栏中输入刚刚复制的地址,点击下方的 Clone

项目 Clone 完成后,找到 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="testTables" targetRuntime="MyBatis3">
		<commentGenerator>
			<!-- 是否去除自动生成的注释 true:是 : false:否 -->
			<property name="suppressAllComments" value="true" />
		</commentGenerator>
		<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
						connectionURL="jdbc:mysql://localhost:3306/ecourses" userId="root"
						password="root">
		</jdbcConnection>
		<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 
			NUMERIC 类型解析为java.math.BigDecimal -->
		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>
		<!-- targetProject:生成PO类的位置 -->
		<javaModelGenerator targetPackage="cn.ecourses.pojo"
							targetProject=".\src">
			<!-- enableSubPackages:是否让schema作为包的后缀 -->
			<property name="enableSubPackages" value="false" />
			<!-- 从数据库返回的值被清理前后的空格 -->
			<property name="trimStrings" value="true" />
		</javaModelGenerator>
		<!-- targetProject:mapper映射文件生成的位置 -->
		<sqlMapGenerator targetPackage="cn.ecourses.mapper"
						 targetProject=".\src">
			<!-- enableSubPackages:是否让schema作为包的后缀 -->
			<property name="enableSubPackages" value="false" />
		</sqlMapGenerator>
		<!-- targetPackage:mapper接口生成的位置 -->
		<javaClientGenerator type="XMLMAPPER"
							 targetPackage="cn.ecourses.mapper"
							 targetProject=".\src">
			<!-- enableSubPackages:是否让schema作为包的后缀 -->
			<property name="enableSubPackages" value="false" />
		</javaClientGenerator>
		<!-- 指定数据库表 -->
		<table schema="" tableName="ecourses_content"></table>
		<table schema="" tableName="ecourses_content_category"></table>
		<table schema="" tableName="ecourses_item"></table>
		<table schema="" tableName="ecourses_item_cat"></table>
		<table schema="" tableName="ecourses_item_desc"></table>
		<table schema="" tableName="ecourses_item_param"></table>
		<table schema="" tableName="ecourses_item_param_item"></table>
		<table schema="" tableName="ecourses_order"></table>
		<table schema="" tableName="ecourses_order_item"></table>
		<table schema="" tableName="ecourses_order_shipping"></table>
		<table schema="" tableName="ecourses_user"></table>
		<table schema="" tableName="ecourses_admin"></table>
	</context>
</generatorConfiguration>

配置完成后,找到 GeneratorSqlmap.java,它在以下路径:

src\main\java\demo\yangxu

运行其中的 main 方法

运行完毕后,在 src 目录下生成了相关的 mapper 和 pojo,将两者复制到自己开发的项目中去即可。

可能遇到的问题

在 pom.xml 文件中依赖了 ojdbc14

<dependency>
    <groupId>com.oracle.jdbc</groupId>
    <artifactId>ojdbc14</artifactId>
    <version>10.2.0.1.0</version>
    <scope>runtime</scope>
</dependency>

这个 jar 包远程仓库中是没有的,如果需要这个 jar 包,可以参考我之间发布的笔记:

Maven丨使用IDEA将本地的ojdbc14.Jar包添加到个人仓库中

里面给出了详细的解决方案。