SSMday3——掌握Mybatis的核心配置文件

基本结构

<?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>
</configuration>

configuration:MyBatis框架核心配置文件的根节点元素,Mybatis所有的配置信息都会存放在这里面。

子元素

1.properties元素

引用外部文件,描述的是一些外部的、可替代的属性
<!--使用方式有两种:-->
<!-- 1.引入文件,文件里有设置好的属性信息 -->
<properties resource="xxx" />
<!-- 2.获取属性 -->
<dataSource type="POOLED">
  <property name="driver" value="${driver}"/>
  <property name="url" value="${url}"/>
  <property name="username" value="${username}"/>
  <property name="password" val ue="${password}"/>
</dataSource>
<!-- ${xxx}和引入的文件属性名称相同 -->

如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载:

首先读取在 properties 元素体内指定的属性。
然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。
最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性。
结论:resource属性值的优先级高于property子节点配置的值。

2.settings元素

里面设置的选项会影响整个MyBatis框架的运行时行为
部分常用选项:

设置项描述允许值默认值
cacheEnabled对此配置文件下所有SQL映射的缓存进行全局性开关设置true/falsetrue
lazyLoadingEnabled全局启用或禁用延迟加载。启用后,所有关系都会被延迟加载true/falsefalse
autoMappingBehavior指定MyBatis框架是否应自动映射,及如何映射查询结果集中的列到Java对象的字段/属性NONE/PARTIAL/FULLPARTIAL
logImpl指定MyBatis框架应使用的日志记录实现。如果不设置,将自动发现日志记录实现SLF4J/LOG4J/LOG4J2/JDK_LOGGING…
<settings>
  <setting name="logImpl" value="LOG4J"/>
<settings />

3.typeAliases元素

可以为Java类型配置一个别名。使用别名可以避免在SQL映射文件中使用冗长的完全限定类名。仅限于xml配置

<typeAliases>
   <!--这里给实体类取别名,方便在mapper配置文件中使用-->
  <typeAlias alias="Users" type="com.bean.Users"/>
</typeAliases>

Uers可以出现在任何需要com.bean.Users的地方,但上述写法的弊端在于,如果一个项目中有多个实体类,需要每个都要配置。有更加简化的写法,就是通过package的name属性直接指定包名。

<typeAliases>
  <!--Mybati会自动扫描包名下的JavaBean,并设置一个别名,默认名称为JavaBean的非限定类名。-->
  <package name="com.bean"/>
</typeAliases>

如果要在配置包的情况下,设置别名,需要用到注解。

@Alias("user")
public class User {
}

使用注解设置别名

4.environments元素

可以为MyBatis配置多套运行时环境,从而将SQL映射到不同的数据库环境上,但是不管增加几套运行环境,都必须明确选择当前当前唯一的运行环境。因为每个SqlSessionFactory只能匹配一个选择环境。

<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.<environments default="development">
	default指定一个默认的运行环境
2.<environment id="development">
	每个environment元素代表一个运行环境,id:各运行环境配置的命名,唯一
3.<transactionManager type="JDBC">
	指定事务管理类型,(Mybatis有二种事务管理类型JDBC和MANAGED)
	JDBC表示直接使用JDBC的提交和回滚功能
	MANAGED表示由容器负责
4.<dataSource type="POOLED">
	使用标准的JDBC数据源接口来配置JDBC连接对象的资源,提供了三种数据源类型(UNPOOLED、POOLED、JNDI)
	POOLED表示MyBatis框架实现的简单数据库连接池类型,利用“池”的概念组织数据库的对象,减少创建新连接时消耗的时间和资源
	JNDI表示使用容器中以JNDI方式提供的数据源资源

5.mappers元素

SQL映射器的路径,告诉mybatis去哪里找到SQL映射文件

<!-- 类路径的资源引用 -->
<mappers>
  <mapper resource="dao/impl/AuthorMapper.xml"/>
  <mapper resource="dao/impl/BlogMapper.xml"/>
</mappers>
<!-- 映射器接口实现类的完全限定类名 -->
<mappers>
  <mapper class="dao.impl.AuthorMapper"/>
</mappers>
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
  <package name="dao.impl"/>
</mappers>

配置文件结构

除了上述配置一些基本元素,值得注意的是,该配置文件的元素节点是有先后顺序的,其文件结构

configuration 配置
  peoperties  可以配置在Java属性配置文件中
  settings  修改MyBatis在运行时的行为方式
  typeAliases  为Java类型命名一个别名(简称)
  typeHandlers  类型处理器
  objectFactory  对象工厂
  plugins  插件
  environments  环境
  environment  环境变量
    transactionManager  事务管理器
    dataSource  数据源
  mappers  映射器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值