MyBatis配置文件详解
配置名称 | 配置介绍 |
---|
configuration | 整个配置文件的顶级标签 |
properties | 该标签可以引入外部配置文件的属性,并用${}读取配置属性 |
setting | 用来配置一些改变运行时的行为信息,如是否使用缓存,延迟加载等 |
typeAliases | 用于设置一些别名用来替代冗长的类型声明 |
environments | 数据环境集合属性对象 |
environment | 数据环境子属性对象 |
transactionManager | MyBatis的事务管理 |
dataSource | 数据源 |
mapper | 映射器,用于加载SQL映射配置文件 |
properties 配置
# properties 属性主要用于引入其他配置文件信息,可以${}占位符的方式来获取值。同时可以在其中声明常量
# 在读取${username:root}时,如果username不存在其可以用root作为默认值
<properties resource="jdbc.properties">
<property name="username" value="zhangsan"/>
</properties>
typeAliases 配置
<typeAliases>
<typeAlias type="com.xia.itstudy.pojo.Users" alias="users"/>
<package name="com.xia.itstudy.pojo"/>
</typeAliases>
enviroments 配置
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC"></transactionManager>
<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>
</environments>
- transactionManager 事务管理器分为两种:分别是JDBC和MANAGED,配置为JDBC时相当于直接使用JDBC的提交和回滚设置。配置为MANAGED则不会提交和回滚连接,而是由容器来管理事务的生命周期。在默认情况下MANAGED会关闭连接(可以设置closeConnection 为 false 取消该设置)。
- dataSource 的类型有三种分别是:UNPOOLED,POOLED,JNDI。其中UNPOOLED设置了每次请求时打开和关闭连接。POOLED设置了数据库连接池来管理数据库的连接和关闭次数。JNDI则配置外部数据源。
mapper 配置
<mappers>
<mapper url=""/>
<mapper class=""/>
<mapper resource="com/xia/itstudy/mapper/UserMapper.xml"></mapper>
<package name=""/>
</mappers>
MyBatis映射配置文件详解
Mapper 配置文件标签
标签名称 | 标签作用 |
---|
insert | 用于映射插入语句 |
delete | 用于映射删除语句 |
update | 用于映射更新语句 |
select | 用于映射选择语句 |
resultMap | 将数据库的结果集取出的数据映射到对应的实体类对象的字段中 |
sql | 配置可以被其他语句应用的SQL语句块 |
cache | 给定命名空间的缓存配置 |
cache-ref | 其他命名空间缓存配置的引用 |
Mapper 配置文件标签属性
属性名 | 含义 |
---|
id | SQL映射配置的唯一标签 |
parameterType | 输入的参数类型 |
resultType | 返回的数据类型 |
resultMap | 引入外部结果集配置 |
flushCache | 是否清空本地缓存和二级缓存,默认为false |
useCache | 执行结果是否使用二级缓存,select元素默认为false |
timeout | 在抛出异常前,驱动等待数据库回应的最大秒数 |
useGenerateKeys | 设置MyBtais中的JDBC自动获取 自增主键的值,默认为false |