MyBatis主配置文件的4个作用

主配置文件可以随意命名,其主要完成以下几个功能:

  1. 注册DB连接四要素的属性文件
  2. 注册实体类的全限定类名的别名
  3.  配置MyBatis运行环境,即数据源与事务管理器
  4.  注册SQL映射文件


1、注册属性文件

在标签<configuuration>选中时,F2可查看其描述信息,也可查看其子标签。


利用<properties>标签可以注册属性文件。

注册完成以后,在主配置文件中就可以使用${ }来获取属性文件中相应的value。


2、配置实体类的别名

如果在需要使用全限定类名的时候,一直使用全限定类名,那样就显得繁琐,比如后面要展示的查询所有数据,再比如指定一个SQL语句的返回值类型。此时就可以使用指定别名的方式来代替全限定类名。

对于实体类的全限定类名的别名的指定方式,有两种:

  1. 使用<package>方式(推荐)
  2. 使用<typeAlias>方式

一般使用<package>方式。这样做的好处是会将该包中的所有实体类的简单类名指定为别名,写法较简单方便。

<typeAliases>
	<!-- 指定包,包中的类的简单类名作为别名 -->
	<package name="com.wisver.beans" />
</typeAliases>

而通过<typeAlias>指定时,标签的属性type的值就是全限定类名,alias的值就是类的别名。

该方式的好处是可以指定任意名称为类的别名,弊端是,必须要逐个指定,当要起别名的类比较多时,就会比较繁琐。

扫描二维码关注公众号,回复: 870509 查看本文章
< typeAliases>
	<!-- typeAlias一行定义一个对象的别名,别名可自定义 -->
	<typeAlias type="com.wisver.beans.Student" alias=”stu” /> 
</typeAliases>


3、配置MyBatis运行环境

<!-- 引用某个数据库的连接作为 MyBatis 的连接 -->
<environments default="mysql">
	<!-- 配置数据库连接 可以有多个配置 ,如果有多个配置那么id不能重复 -->
	<environment id="mysql">
		<!-- 事务管理器 采用JDBC管理事务 -->
		<transactionManager type="JDBC" />
		<!-- 配置数据源 连接数据库 POOLED 连接池 采用连接池技术管理数据库连接 或 JNDI采用JNDI管理连接 -->
		<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>
3.1 <environments>标签

在<environments>中可以包含多个运行环境<environment>,但其default属性指定了当前MyBatis运行时所选择使用的环境。

<environment>的id属性为当前定义的运行环境的名称,可以任意命名。该名称会作为<environments>的default属性的值出现。

3.2  <transactionManager>标签

<transactionManager type="JDBC"/>

该标签用于指定MyBatis所使用的事务管理器。MyBatis支持两种事务管理器类型:JDBC和MANAGED。

JDBC:使用JDBC的事务管理机制。即通过Connection的commit()方法提交,通过rollback()方法回滚。但默认情况下,MyBatis将自动提交功能关闭了,改为了手动提交。即程序中需要显式的对事物进行提交或回滚。

MANAGED:由容器来管理事务的整个生命周期(如Spring容器)。

3.3  <dataSource >标签

该标签用于配置MyBatis使用的数据源类型与数据库连接基本属性。常见类型有:UNPOOLED、POOLED、INDI等。

  1. UNPOOLED:不使用连接池。即每次请求,都会为其创建一个DB连接,使用完毕,会马上将此连接关闭。
  2. POOLED:使用数据库连接池来维护连接。
  3. INDI:数据源可以定义到应用的外部,通过INDI容器获取数据库连接。


4、注册SQL映射文件

指定映射文件的方式有多种,但是所有的方式都是在<mappers>标签中指定的。

  1. 通过<package name=” ”/>指定映射文件
  2. 通过<mapper resourse=””/>指定映射文件
  3. 通过<mapper class=” ”/>指定映射文件 (了解即可)
  4. 通过<mapper url=””/>来指定映射文件(了解即可)

4.1  <package name=""/>

当映射文件较多时,可以使用这种形式来指定。其中package的name属性指定映射文件所存放的包。

这种方式的使用需要满足一下几个条件:(同名同包全限定外加动态代理)

  1. 映射文件要与Dao接口名称相同
  2. 映射文件要与接口在同一包中
  3. 映射文件中<mapper>的namespace属性值为Dao接口的全限定类名。
  4. dao使用mapper动态代理实现
4.2  <mapper resource=""/>

这种情况下,有几个映射文件就需要写几个mapper标签,如:

<mappers>
	<mapper resource="com/learn/c_primary/dao/IStudentDao-mapper.xml"/>
	<mapper resource="com/learn/c_primary/dao/IStudentDao-mapper2.xml"/>
</mappers>
4.3  <mapper class=” ”/>

class属性的值时Dao接口的全限定类名。

这种方式的使用,需要满足以下几个要求:(同名同包全限定)

  1. 映射文件名要与Dao接口名称相同。
  2. 映射文件要与接口在同一包中。
  3. 映射文件中<mapper>的namespace属性值为Dao接口的全限定类名。

4.4  <mapper url=””/>

这种方式的好处是:可以将映射文件放在本地或网络的任意位置,通过其url地址即可直接访问。但通常映射文件是存放在当前应用中的,所以该方式不常用。




猜你喜欢

转载自blog.csdn.net/qq_36173821/article/details/80153470
今日推荐