Mybatis全局配置文件

一. 引入外部属性文件_properties

像在Spring中,数据库连接的相关的配置都是在外部的properties文件中进行的,在MyBatis依然使用这种形式。

在类路径下添加db.properties:

### MYSQL 

mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://127.0.0.1:3306/ssm?characterEncoding=utf-8&useUnicode=true
mysql.user=root
mysql.password=a123456
mysql.maxSize=10
mysql.initSize=5

### ORACLE

oracle.driver=oracle.jdbc.driver.OracleDriver
oracle.url=jdbc:oracle:thin:@AUTOBVT-CKDOVBK:1521:wanbange
oracle.user=scott
oracle.password=a123456

然后在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>
	<!-- 引入外部属性文件 
		properties : 是引入外部属性文件的标签
			resource:表示从类路径中加载对应的属性文件
			url:表示从网络中或者磁盘中读取对应的属性文件
	-->
	<properties resource="db.properties" ></properties>
	
	<environments default="mysql">
		<environment id="mysql">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="${mysql.driver}" />
				<property name="url" value="${mysql.url}" />
				<property name="username" value="${mysql.user}" />
				<property name="password" value="${mysql.password}" />
			</dataSource>
		</environment>
	</environments>
	<!-- 注册sql映射文件 -->
	<mappers>
		<mapper resource="com/nhkj/dao/EmpDao.xml" />
	</mappers>
</configuration>

测试引用外部属性文件是否成功.

二. 运行时的行为设置_setting

在MyBatis的全局配置文件中,可以使用setting标签设置MyBatis运行时的行为,有很多可以设置的项,今天我们讲解一些基本的设置,之前编写HelloWorld程序的时候,我们查询的数据列没有和实体类的JavaBean风格的属性名称对应,所以查询的结果封装不上,后面的解决方案是设置了自动驼峰命名,就是将查询结果集的数据列映射到实体类属性映射不上的情况下,对查询结果集的数据列自动的进行驼峰命名后再进行映射。这是查询结果集能够正常的封装到实体类对象的属性上。

<!-- 
		settings:Mybatis运行时行为设置,可以配置多个
			- setting :单个行为设置标签
				- name :设置项名称
				- value : 设置项的值
	 -->
	<settings>
		<!-- 设置自动驼峰命名 -->
		<setting name="mapUnderscoreToCamelCase" value="true"></setting>
	</settings>
三. 运行时环境

Environments表示配置多个环境,这里的环境指的是数据库环境,已就意味着我们的程序可以连接多个数据库。

	<!-- 
		environments:表示可以配置多个环境,default 属性表示指定使用哪一种环境、

   - environment 表示配置单个数据库环境 ,必须存在id属性,表示的此环境的唯一标识,而且多个环境的id不能重复,存在两个标签
        - transactionManager :配置事务管理器,type表示设置事务管理器的类型,有两种
             - JDBC :这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域
                 - MANAGED :这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。
                   		 默认情况下它会关闭连接。然而一些容器并不希望连接被关闭,因此需要将 closeConnection 属性设置为 false 来阻止默认的关闭行为
                   		 <property name="closeConnection" value="false"/>
                   - dataSource :配置数据源,type表示设置数据源类型,有三种:
                     - POOLED : 使用连接池
                     - UNPOOLED :不使用连接池
                     - JNDI :
                       -->
 <environments default="oracle">
     <environment id="mysql">
         <transactionManager type="JDBC"/>
           <dataSource type="POOLED">
                       <property name="driver" value="${mysql.driver}" />
                       <property name="url" value="${mysql.url}" />
                       <property name="username" value="${mysql.user}" />
                       <property name="password" value="${mysql.password}" />
                       </dataSource>
    </environment>
	<environment id="oracle">
		<transactionManager type="JDBC" />
		<dataSource type="POOLED">
			<property name="driver" value="${oracle.driver}" />
			<property name="url" value="${oracle.url}" />
			<property name="username" value="${oracle.user}" />
			<property name="password" value="${oracle.password}" />
		</dataSource>
	</environment>
</environments>
四. 注册映射文件_mappers

使用mappers标签可以注册sql映射文件,将sql映射文件注册到全局配置文件中是必不可少的步骤,正常开发来说,一个SQL映射文件对应到一个DAO[Mapper]接口。

<!-- 注册sql映射文件
		mappers : 可以注册多个sql映射文件
			mapper : 注册单个sql映射文件

   - resource : 表示配置类路径中的sql映射文件
        - url:表示配置网络中或者硬盘中的sql映射文件
            - class : 表示引用接口注册,
                - 要求,sql映射文件和接口要同名同包
                   - 也可以不适用sql映射文件,而是在接口的方法上注解sql,这种方式不提倡,因为MyBatis本来就是想将sql和Java代码相分离
                     @Select("select * from emp")
                     	public List<Emp> selectEmp();
		package : 扫描此包及子包的接口和sql映射文件	
			- 需要在接口中使用@Mapper注解	
			@Mapper
			public interface EmpDao {
			- 要求,sql映射文件和接口要同名同包
 -->
<mappers>
	<package name="com.nhkj.dao"/>
	<!-- <mapper class="com.nhkj.dao.EmpDao"/> -->
</mappers>
小结

对于全局的配置文件,在Mybatis中是一个关键的配置,当然以后如果Mybatis和Spring的整合的话,可以不需要Mybatis的配置文件,但是依然建议保留。

MyBatis的全局配置文件必须按照顺序配置:

  • properties
  • settings
  • typeAliases
  • typeHandlers
  • objectFactory
  • objectWrapperFactory
  • reflectorFactory
  • plugins
  • environments
  • databaseIdProvider
  • mappers

中间可以断,但顺序不能乱。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值