MyBatis中配置文件示例
# MyBatis中使用的配置文件示例
# 1、mybatis-config.xml完整配置文件示例
【示例】:mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--加载properties文件到MyBatis配置文件中-->
<properties resource="db.properties"></properties>
<!--配置log4j为日志实现-->
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<!-- 别名 -->
<typeAliases>
<typeAlias type="com.singerw.pojo.Users" alias="Users" />
<typeAlias type="com.singerw.pojo.Category" alias="Category" />
<typeAlias type="com.singerw.pojo.Article" alias="Article" />
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!--每一个mapper.xml都需要在MyBatis核心配置文件中注册-->
<mappers>
<mapper resource="com/singerw/mapper/ArticleMapper.xml"/>
<mapper resource="com/singerw/mapper/UsersMapper.xml"/>
<mapper resource="com/singerw/mapper/CategoryMapper.xml"/>
</mappers>
</configuration>
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
42
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
42
【示例】:db.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/goku?serverTimezone=Asia/Shanghai
username=root
password=795200
1
2
3
4
2
3
4
# 2、映射器
<!--映射器-->
<!--每一个mapper.xml都需要在MyBatis核心配置文件中注册-->
<mappers>
<mapper resource="com/singerw/mapper/UserMapper.xml"/>
<mapper resource="com/singerw/mapper/ArticleMapper.xml"/>
</mappers>
1
2
3
4
5
6
2
3
4
5
6
# 3、类型别名
<!-- 别名 -->
<typeAliases>
<typeAlias type="com.singerw.pojo.User" alias="User" />
<typeAlias type="com.singerw.pojo.Article" alias="Article" />
</typeAliases>
1
2
3
4
5
2
3
4
5
# 4、数据库链接信息属性
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/goku?serverTimezone=Asia/Shanghai
username=root
password=795200
1
2
3
4
2
3
4
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 5、ResultMat
【示例】数据库中的User
表字段
- userid
- username
- userphone
- userpassword
- jurisdiction
- createtime
- logintime
- userstatus
数据库中的字段和实体类中的字段不一致。
使用结果集映射
【示例】UserMapper.xml
<!--resultMap结果集映射-->
<resultMap id="userMap" type="User">
<!-- 实体类和表列做关联-->
<!-- id 主键 属性 -->
<id property="id" column="userid"></id>
<!--其他部分-->
<!--column数据库中的字段,property实体类中的属性-->
<result property="name" column="username"></result>
<result property="phone" column="userphone"></result>
<result property="password" column="userpassword"></result>
<result property="jurisdiction" column="jurisdiction"></result>
<result property="juri" column="createtime"></result>
<result property="created" column="createtime"></result>
<result property="logined" column="logintime"></result>
<result property="status" column="userstatus"></result>
</resultMap>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
collection关联映射案例,通过用户ID查询用户和用户发表的文章
<!-- 映射关系的管理和定义 ,type指的是实体类型,id当前的resultMap的名字 -->
<resultMap type="Users" id="userMap2">
<!-- 主键使用id -->
<id property="id" column="userid"/>
<!-- 一个result表示一个列和实体类的属性的对应关系 -->
<result property="username" column="username"/>
<result property="nickname" column="nickname"/>
<result property="password" column="password"/>
<result property="status" column="userstatus"/>
<result property="email" column="email"/>
<result property="userface" column="userface"/>
<result property="created" column="user_created"/>
<result property="lastlogin" column="lastlogin"/>
<collection property="articleList" ofType="Article">
<id property="id" column="articleid"/>
<result property="title" column="title"/>
<result property="content" column="content"/>
<result property="summary" column="summary"/>
<result property="created" column="category_created"/>
<result property="status" column="articlestatus"/>
</collection>
</resultMap>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
association关联映射,通过关键字或者文章ID查询一篇或多篇文章和每篇文章的作者信息
<!-- 映射关系的管理和定义 ,type指的是实体类型(取了别名),id当前的resultMap的名字 -->
<resultMap type="Article" id="articleMap">
<!-- 主键使用id -->
<id property="id" column="id"/>
<!-- 一个result表示一个列和实体类的属性的对应关系 -->
<result property="title" column="title"/>
<result property="content" column="content"/>
<result property="summary" column="summary"/>
<result property="created" column="created"/>
<result property="status" column="status"/>
<!-- 此时我们的Article类中,增加了一个Users类型的属性 -->
<association property="users" column="uid" javaType="com.singerw.pojo.Users">
<!-- author类对应的表中的列 和 类属性关联 -->
<id property="id" column="uid"/>
<result property="username" column="username"/>
<result property="nickname" column="nickname"/>
</association>
</resultMap>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 6、开启全局缓存
<!--显式的开启全局缓存-->
<setting name="cacheEnabled" value="true"/>
1
2
2
在要使用二级缓存的Mapper.xml中开启
<!--在当前Mapper.xml中使用二级缓存-->
<cache/>
也可以自定义参数
<cache eviction="FIFO"
flushInterval="60000"
size="512"
readOnly="true"/>
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
编辑 (opens new window)