Mybatis的配置文件详解

下面来学习一下Mybatis配置文件中各个标签的配置。

1、<properties>

作用:我们可以使用<properties>标签来引入外部properties配置文件的内容,一般用于引入数据源的配置。

该标签可以有2个属性:

(1)、resource:使用该属性,表示引入类路径下的资源;
(2)、url:使用该属性,表示引入网络路径或者磁盘路径下的资源

例子如下:表示从类路径下引入dbconfig.properties文件,可以在Mybatis配置文件中使用${ }来使用其中的值。

<properties resource="dbconfig.properties"></properties>

2、<settings>

这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。
<settings>中包含很多重要的设置项,我们用<setting>标签来设置每一个设置项:name:设置项名,value:设置项取值。具体配置项可以参考官方文档。下面对几项做一下说明。

(1)、全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存

	<setting name="cacheEnabled" value="true"/>

(2)、配置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会重用预处理语句(prepared statements); BATCH 执行器将重用语句并执行批量更新。

	<setting name="defaultExecutorType" value="SIMPLE"/>

(3)、当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。

	<setting name="jdbcTypeForNull" value="OTHER"/>

(4)、开启驼峰命名规则

	<setting name="mapUnderscoreToCamelCase" value="true"/>

3、<typeAliases>

作用:别名处理器,可以在<typeAliases>标签中,用<typeAlias>标签为某个Java类型起别名,别名不区分大小写。

<typeAliases>标签下有2个子标签,<typeAlias>标签和<package>标签。

<typeAlias>标签: 该标签有2个属性

(1)、type:该属性指定要起别名的类型全类名,默认别名就是类名小写;例如以下配置,默认的别名就是author

	<typeAliases>
		 <typeAlias type="domain.blog.Author"/>
	</typeAliases>

(2)、alias:指定新的别名,示例如下:

	<typeAliases>
	  <typeAlias alias="Blog" type="domain.blog.Blog"/>
	</typeAliases>

当这样配置时,任何使用domain.blog.Blog的地方都可以用Blog代替。

<package>标签:

为某个包下的所有类批量起别名。该标签有一个name属性,用于指定包名,作用是:为当前包以及下面所有的后代包的每一个类都起一个默认别名,类名小写

	<typeAliases>
		<package name="com.scorpios.mybatis.bean"/>
	</typeAliases>	

我们在批量起别名的情况下,可以使用@Alias注解为某个类型指定新的别名 。

例如:每一个在包com.scorpios.mybatis.bean中的Java Bean,在没有注解的情况下,会使用Bean的首字母小写的非限定类名来作为它的别名。比如 com.scorpios.mybatis.bean.Author的别名为 author;若有注解,则别名为其注解值。看下面的例子。com.scorpios.mybatis.bean.Author的别名就为 kkk

	@Alias("kkk")
	public class Author {}

4、<environments>

<environments>标签:mybatis可以配置多种环境 ,可用default属性来指定使用某种环境。可以达到快速切换环境。该标签下可以有多个定义环境的<environment>子标签。

<environment>标签:配置一个具体的环境信息,该标签必须有两个子标签,<transactionManager><dataSource >

<environments default="dev_mysql">
	<!--mysql环境-->
	
	<environment id="dev_mysql">		// id代表当前环境的唯一标识;
		// transactionManager:指定事务管理器
		// type:指定事务管理器的类型; 
		// 值可以为:
		// 		JDBC(JdbcTransactionFactory)、MANAGED(ManagedTransactionFactory)
		<transactionManager type="JDBC"></transactionManager>
		
		// dataSource:数据源
		// type:数据源类型:
		//	UNPOOLED(UnpooledDataSourceFactory)
		//				|POOLED(PooledDataSourceFactory)
		//				|JNDI(JndiDataSourceFactory)
		<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>
	
	<!--oracle环境-->
	<environment id="dev_oracle">
		<transactionManager type="JDBC" />
		<dataSource type="POOLED">
			<property name="driver" value="${orcl.driver}" />
			<property name="url" value="${orcl.url}" />
			<property name="username" value="${orcl.username}" />
			<property name="password" value="${orcl.password}" />
		</dataSource>
	</environment>
</environments>

5、<databaseIdProvider>

作用:该标签可以支持多数据库厂商。该标签有一个属性type。

type="DB_VENDOR"VendorDatabaseIdProvider作用就是得到数据库厂商的标识(使用驱动getDatabaseProductName()方法),mybatis 就能根据数据库厂商标识来执行不同的sql。

下面指定三种数据库:MySQL,Oracle,SQL Server。如果用如下的配置,我们就可以在Mapper文件中编写SQL时指定databaseId,来指定该SQL是在哪种类型的数据库下执行的。

<databaseIdProvider type="DB_VENDOR">
	<!-- 为不同的数据库厂商起别名 -->
	<property name="MySQL" value="mysql"/>
	<property name="Oracle" value="oracle"/>
	<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>

6、<mappers>

作用:该标签将SQL映射注册到全局配置中

注意:将我们写好的SQL映射文件,例如:EmployeeMapper.xml,一定要注册到全局配置文件(mybatis-config.xml)中

该标签下有一个子标签<mapper>,作用是注册一个SQL映射 。该标签下有3个属性:

(1)、resource:该属性是引用类路径下的SQL映射文件

(2)、url:该属性是引用网路路径或者磁盘路径下的sql映射文件

(3)、class:引用(注册)接口。该属性的使用要注意以下两点:

第一、有SQL映射文件,也就是有Mapper映射文件时,映射文件名必须和接口同名,
并且放在与接口同一目录下;

第二、没有SQL映射文件时,所有的SQL都是利用注解写在接口上;

<mappers>
	<mapper resource="mybatis/mapper/EmployeeMapper.xml"/>
	<mapper class="com.scorpios.mybatis.dao.EmployeeMapperAnnotation"/>
	<!-- 批量注册: -->
	<package name="com.scorpios.mybatis.dao"/>
</mappers>

注意:以上的各个配置标签,在mybatis-config.xml配置文件中的顺序不能颠倒。

配置完之后的使用步骤

第一步、根据mybatis的xml配置文件mybatis-config.xml(全局配置文件)创建一个SqlSessionFactory对象,有数据源一些运行环境信息;
第二步、SQL映射文件,配置了每一个SQL,以及SQL的封装规则等;
第三步、将SQL映射文件注册在全局配置文件中;
第四步、写代码:

1)、根据全局配置文件得到SqlSessionFactory;
2)、使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查
	一个sqlSession就是代表和数据库的一次会话,用完关闭
3)、使用sql的唯一标志来告诉MyBatis执行哪个sql,sql都是保存在sql映射文件中的

具体可以参看Mybatis的官方文档:http://www.mybatis.org/mybatis-3/zh/configuration.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

止步前行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值