【MyBatis】 SqlMapConfig.xml配置文件解析
原创
©著作权归作者所有:来自51CTO博客作者阿呆小记的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
SqlMapConfig.xml中基本配置的内容如下:
- properties(属性)
- settings(全局配置参数)
- typeAliases(类型别名)
- typeHandlers(类型处理器)
- objectFactory(对象工厂)
- plugins(插件)
- environments(环境集合属性对象)
- environment(环境子属性对象)
*transactionManager(事务管理)
*dataSource(数据源) - mappers(映射器)
一、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保持一致!!!
扩充:
也就是说要使用这个参数的话,值(文件)必须以URL地址的形式呈现。当我们把配置文件拖入浏览器的时候,就会在网址一栏看到文件的本地路径(说法不完全正确),其实这是一个file协议。File协议主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样;要使用File协议,基本的格式如下:file:///文件路径。
所以下面两种写法都一样,只是url的形式我们通常不怎么使用,了解即可~
返回顶部
二、typeAliases(类型别名)
该属性用于配置结果类型,方便书写式的简便;可以将对象封装类定义为类型。
<!-- 使用typeAliases配置别名,他只能配置domain中共的类别名 -->
<typeAliases>
<!-- typeAlias用于配置别名。type属性指定的是实体类全限定类名。alias属性指定别名,当指定了别名后就不在区分大小写 -->
<typeAlias type="com.zyx.core.domain.User" alias="user"></typeAlias>
</typeAliases>
以下几种写法效果等同~
当实体类增多的时候,一个一个配置显得很麻烦,所以另一个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>
返回顶部