MyBatis Generator:MBG
我们在发开过程中,需要根据表的数据结构定义相关的domain下的实体类,以及对应的mapper文件,但当我们的项目数据表比较多时,一个一个创建实体类和对应的mapper文件显然不太可行,此时我们可以利用mybatis框架为我们提供的逆向工程帮助我们创建和使用实体类以及对应的mapper文件
实现步骤
- 在pom文件中加入对应的依赖
1
2
3
4
5<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency> - 编写MBG的配置文件
在工程根目录下创建mbg.xml文件
接下来完成对MBG的配置文件的编写。在编写MBG的配置文件的时候,需要注意五处重要的配置,这五个配置也是编写MBG的配置文件最基本的五个步骤
- jdbcConnection:配置数据库连接信息
- javaModelGenerator:配置javaBean的生成策略
- sqlMapGenerator :配置sql映射文件生成策略
- javaClientGenerator:配置Mapper接口的生成策略
- table :配置要逆向解析的数据表,tableName:表名,domainObjectName:对应的javaBean名
- 更详细的配置信息:https://blog.csdn.net/testcs_dn/article/details/77881776
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41<generatorConfiguration>
<context id="DB2Tables" targetRuntime="MyBatis3">
<!-- 去掉注释的操作-->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 1.配置数据库连接 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/bjpowernode?useSSL=false&serverTimezone=UTC" userId="root"
password="123456">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 2.指定javaBean生成的位置 -->
<javaModelGenerator targetPackage="com.atguigu.crud.bean"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--3.指定sql映射文件生成的位置 -->
<sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 4.指定dao接口生成的位置,mapper接口 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.atguigu.crud.dao" targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 5.table指定每个表的生成策略 -->
<!-- tableName表示表名,domainObjectName表示返回类的实体类名称-->
<table tableName="tbl_emp" domainObjectName="Employee"></table>
<table tableName="tbl_dept" domainObjectName="Department"></table>
</context>
</generatorConfiguration>
3.在单元测试类中运行下面代码
1 | @org.junit.Test |
这样就可以获取到对应的bean下的实体类,dao下的接口,以及对应的mapper文件
这里建议当工程较大时,将mapper文件整体放在resources目录下的mapper文件中,并加上如下配置
以前我们将dao接口对应的mapper文件下载同一目录下,这时实在mybatis的主配置文件中,
1 | //在mybatis和spring整合代码的sqlSessionFactory步骤中加下下面代码指定mapper文件的位置 |