文章目录


SqlMapConfig.xml中基本配置的内容如下:

  • properties(属性)
  • settings(全局配置参数)
  • typeAliases(类型别名)
  • typeHandlers(类型处理器)
  • objectFactory(对象工厂)
  • plugins(插件)
  • environments(环境集合属性对象)
  • environment(环境子属性对象)
    *transactionManager(事务管理)
    *dataSource(数据源)
  • mappers(映射器)

【MyBatis】 SqlMapConfig.xml配置文件解析_学习笔记


一、properties (属性)

将上面图中的格式转换成下面,效果是一样。但是不烦吗?其实properties的用途往往是导入外部配置文件属性参数。

<?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 -->
<properties>
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/ssm?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</properties>

<!-- 配置环境 -->
<environments default="mysql">
<!-- 配置mysql环境 -->
<environment id="mysql">
<!-- 事务配置 -->
<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>
<!-- 配置映射文件的位置 -->
<mappers>
<mapper resource="com/zyx/core/dao/IUserDao.xml"></mapper>
</mappers>
</configuration>

如下图所示,通常使用resource参数传递配置文件的路径锁定资源配置文件,然后去匹配获取参数值。一般配置文件中都是key=value的形式,书写的时候${…} 中的内容要和key保持一致!!!

【MyBatis】 SqlMapConfig.xml配置文件解析_实体类_02

扩充:

【MyBatis】 SqlMapConfig.xml配置文件解析_mysql_03

也就是说要使用这个参数的话,值(文件)必须以URL地址的形式呈现。当我们把配置文件拖入浏览器的时候,就会在网址一栏看到文件的本地路径(说法不完全正确),其实这是一个file协议。File协议主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样;要使用File协议,基本的格式如下:file:///文件路径

【MyBatis】 SqlMapConfig.xml配置文件解析_实体类_04

所以下面两种写法都一样,只是url的形式我们通常不怎么使用,了解即可~

【MyBatis】 SqlMapConfig.xml配置文件解析_mysql_05

返回顶部


二、typeAliases(类型别名)

该属性用于配置结果类型,方便书写式的简便;可以将对象封装类定义为类型。

<!-- 使用typeAliases配置别名,他只能配置domain中共的类别名 -->
<typeAliases>
<!-- typeAlias用于配置别名。type属性指定的是实体类全限定类名。alias属性指定别名,当指定了别名后就不在区分大小写 -->
<typeAlias type="com.zyx.core.domain.User" alias="user"></typeAlias>
</typeAliases>

以下几种写法效果等同~

【MyBatis】 SqlMapConfig.xml配置文件解析_xml_06

当实体类增多的时候,一个一个配置显得很麻烦,所以另一个package属性就起到了作用:

<!-- 使用typeAliases配置别名,他只能配置domain中共的类别名 -->
<typeAliases>
<!-- typeAlias用于配置别名。type属性指定的是实体类全限定类名。alias属性指定别名,当指定了别名后就不在区分大小写 -->
<!--<typeAlias type="com.zyx.core.domain.User" alias="user"></typeAlias>-->
<!-- 用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写 -->
<package name="com.zyx.core.domain"/>
</typeAliases>

扩充:

同样的,package属性在映射配置中也可以起到类似的效果

<!-- 配置映射文件的位置 -->
<mappers>
<!--<mapper resource="com/zyx/core/dao/IUserDao.xml"></mapper>-->
<!-- package标签是用于指定dao接口所在的包,当指定了之后就不需要再写mapper以及resource或者class了(上一行中的参数)-->
<package name="com.zyx.core.dao"/>
</mappers>

返回顶部