在IDEA中利用MyBatis-generator逆向生成MyBatis代码
假如我们的项目中使用到了MyBatis框架,并且涉及的表比较多的话。我们手动编写MyBatis相关代码就会变得比较繁琐还增加了出错的可能性。在本篇文章了记录了如何通过MyBatis-generator来逆向生成MyBatis代码
第一步:添加相关的依赖
在pom文件中添加MySQL数据库连接依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
添加MyBatis-generator依赖
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
添加mybatis-generator-maven-plugin插件
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
</plugin>
第二步:在resources路径下添加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 元素用于指定生成一组对象的环境。
targetRuntime:MyBatis3Simple 只生成提供简单增删改查的代码
-->
<!-- 你所下载的数据库connectord的jar包所在的位置-->
<classPathEntry location="D:\mylib\mysql\mysql-connector-java-8.0.12.jar"/>
<context id="testTables" targetRuntime="MyBatis3Simple">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/course_scheduling_system?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false"
userId="1234"
password="1234">
</jdbcConnection>
<!-- 默认 false,把 JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true 时把 JDBC DECIMAL 和
NUMERIC 类型解析为 java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--
targetPackage:指定 POJO(Bean) 类生成后所在的包的位置
targetProject:指定生成 POJO(Bean) 类的位置
-->
<javaModelGenerator targetPackage="com.xnxy.CourseSchedulingSystem.Bean.po"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让 schema 作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="false" />
</javaModelGenerator>
<!--
targetPackage:指定生成的 SQL 映射文件所在的位置
-->
<sqlMapGenerator targetPackage="Mapper"
targetProject=".\src\main\resources/">
<!-- enableSubPackages:是否让 schema 作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!--
targetPackage:指定 mapper 接口生成包的位置
-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.xnxy.CourseSchedulingSystem.Dao"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让 schema 作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!--
指定数据库表
tableName:指定表名
domainObjectName:指定生成的 POJO(Bean) 的类名
-->
<!--<table tableName="class_info" domainObjectName="ClassInfo"/>
<table tableName="class_task" domainObjectName="ClassTask"/>
<table tableName="classroom_location" domainObjectName="ClassroomLocation"/>
<table tableName="course_info" domainObjectName="CourseInfo"/>
<table tableName="location_info" domainObjectName="LocationInfo"/>
<table tableName="teach_plan" domainObjectName="TeachPlan"/>
<table tableName="teacher_course" domainObjectName="TeacherCourse"/>
<table tableName="teacher_info" domainObjectName="TeacherInfo"/>
<table tableName="user_info" domainObjectName="UserInfo"/>-->
<!--<table tableName="college_info" domainObjectName="CollegeInfo"/>-->
<!--<table tableName="course_plan" domainObjectName="CoursePlan"/>-->
<table tableName="teach_build_info" domainObjectName="TeachBuildInfo"/>
</context>
</generatorConfiguration>
这里需要注意的是generator会默认的自动去查找resources路径下的generatorConfig.xml文件。如果你想将该配置文件放在其他路径下或者使用别的名字则需要进行相关的配置。在这里为了方便我将配置文件直接放在resources路径下并且文件名为generatorConfig.xml。
第三步:点击mybatis-generator插件生成mybatis代码
依次点击IDEA窗口右侧的Maven Projects找到mybatis-generator:generate点击生成mybatis相关代码