目录
1、前言
工程的创建有正向工程和逆向工程之分。正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表,如Hibernate是支持正向工程的。 逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源: Java实体类 Mapper接口 Mapper映射文件,如MyBatis支持逆向工程。
本篇以t_minister表、t_dutie表为例,表结构可查看NO.06 自定义映射resultMap_qq_46053741的博客-CSDN博客
2、添加依赖和插件
在pom.xm文件中添加一下依赖:mysql-connector-java、mybatis-generator-core、junit、log4j,在pom.xml文件中添加build标签,在build标签中添加plugins子标签,plugins标签中主要是添加构建过程中用到的插件;在plugins标签中添加子标签plugin子标签,主要添加创建做成中用到的具体插件,插件主要有以下几个:mybatis-generator-maven-plugin、mybatis-generator-core、mysql-connector-java。
下面是pom.xml配置文件的详细内容
XML
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.review.mybatis</groupId>
<artifactId>review_mbg</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Archetype - review_mbg</name>
<url>http://maven.apache.org</url>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</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.0</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
3、创建MyBatis的核心配置文件
在配置核心配置文件之前需要创建jdbc.properties文件,配置数据库连接信息。
XML
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/review
jdbc.username=root
jdbc.password=123456789
配置文件详细内容如下:
XML
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--
MyBatis核心配置文件中的标签必须要按照指定的顺序配置:
properties?,settings?,typeAliases?,typeHandlers?,
objectFactory?,objectWrapperFactory?,reflectorFactory?,
plugins?,environments?,databaseIdProvider?,mappers?
-->
<!--引入properties文件,此后就可以在当前文件中使用的方式访问value-->
<properties resource="jdbc.properties"/>
<!--
typeAliases:设置类型别名,即为某个具体的类型设置一个别名
在MyBatis的范围中,就可以使用别名表示一个具体的类型
-->
<typeAliases>
<!--
type:设置需要起别名的类型
alias:设置某个类型的别名
-->
<!-- <typeAlias type="com.review.mybatis.Pojo.User" alias="abc"></typeAlias>-->
<!-- 若不设置alias,当前的类型拥有默认的别名,即类名且不区分大小写-->
<!-- <typeAlias type="com.review.mybatis.pojo.User"></typeAlias>-->
<!--通过包设置类型别名,指定包下所有的类型将全部拥有默认的别名,即类名且不区分大小写-->
<package name="com.review.mybatis.pojo"/>
</typeAliases>
<!-- 配置连接数据库的环境-->
<!--
environments:配置连接数据库的环境
属性:
default:设置默认使用的环境的id
-->
<environments default="development">
<environment id="development">
<!--
transactionManager:设置事务管理器
属性:
type:设置事务管理的方式
type="JDBC|MANAGED"
JDBC:表示使用JDBC中原生的事务管理方式
MANAGED:被管理,例如Spring
-->
<transactionManager type="JDBC"/>
<!--
dataSource:设置数据源
属性:
type:设置数据源的类型
type="POOLED|UNPOOLED|JNDI"
POOLED:表示使用数据库连接池
UNPOOLED:表示不使用数据库连接池
JNDI:表示使用上下文中的数据源
-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/review"/>
<property name="username" value="root"/>
<property name="password" value="123456789"/>
</dataSource>
</environment>
</environments>
<!-- 引入mybatis的映射文件-->
<!--
以包的方式引入映射文件,但是必须满足两个条件:
1、mapper接口和映射文件所在的包必须一致
2、mapper接口的名字和映射文件的名字必须一致
-->
<mappers>
<!-- <mapper resource="mappers/MinisterMapper.xml"/>-->
<!--
以包的方式引入映射文件,但是必须满足两个条件:
1、mapper接口和映射文件所在的包必须一致
2、mapper接口的名字和映射文件的名字必须一致
-->
<package name="com.review.mybatis.mapper"/>
</mappers>
</configuration>
配置文件中typeAliases标签中的package子标签表示以包设置类型别名,指定包下所有的类型将全部拥有默认的别名,即类名且不区分大小写,name属性的value值是实体类包的路径。
mapper标签中的package子标签表示以包的方式引入映射文件,但是必须满足两个条件:1、mapper接口和映射文件所在的包必须一致;2、mapper接口的名字和映射文件的名字必须一致。name属性的value值表示映射文件所在包的路径。
4、创建逆向工程的配置文件
逆向工程配置文件名必须为generatorConfig.xml。
配置文件详细内容如下:
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>
<!--
targetRuntime: 执行生成的逆向工程的版本
MyBatis3Simple: 生成基本的CRUD(清新简洁版)
MyBatis3: 生成带条件的CRUD(奢华尊享版)
-->
<context id="DB2Tables" targetRuntime="MyBatis3">
<!-- 数据库的连接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/review"
userId="root"
password="123456789">
</jdbcConnection>
<!--
targetPackage:指定生成targetProject下的路径
targetProject:指定生成的位置
-->
<!-- javaBean的生成策略-->
<javaModelGenerator targetPackage="com.review.mybatis.pojo"
targetProject=".\src\main\java">
<!--
enableSubPackages设置是否能够使用子包,默认值为true,可以将包名中的'.'解析为一个一个目录;
如果为false,则无法解析包名中的'.',将带有'.'的包路径看作一个包。
-->
<property name="enableSubPackages" value="true"/>
<!--
trimStrings起截取作用,将表中的字段名前后的空格去除。
-->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- SQL映射文件的生成策略 -->
<sqlMapGenerator targetPackage="com.review.mybatis.mapper"
targetProject=".\src\main\resources">
<!--
enableSubPackages:设置是否适用子包。
-->
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- Mapper接口的生成策略 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.review.mybatis.mapper" targetProject=".\src\main\java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 逆向分析的表 -->
<!-- tableName:指定需要逆向生成的表
tableName设置为*号时,可以对应所有表,此时不写domainObjectName -->
<!-- domainObjectName:指定生成出来的实体类的类名 -->
<table tableName="t_minister" domainObjectName="Minister"/>
<table tableName="t_dutie" domainObjectName="Dutie"/>
</context>
</generatorConfiguration>
5、执行MBG插件的generate目标
配置完generatorConfig文件后,需要执行generate插件生成逆向工程。生成逆向工程过程如下图,在maven仓库中找到当前工程下的mybatis-generator,双击mybatis-generator下的mybatis-generator:generate即可生成。
注意:如果当前工程main目录下只有resource目录,没有java目录,需手动创建java目录。
最终生成逆向工程的结果图:
逆向工程生成的Mapper接口中方法的使用参考NO.09 MyBatis中逆向工程生成的Mapper接口中的方法功能说明以及使用_qq_46053741的博客-CSDN博客