《Mybatis学习-3》Mybatis的全局配置文件

143 阅读1分钟

引入dtd约束

正常我们编码的时候 Alt+/ 会有提示信息告诉我们有哪些标签我们可以使用。但是在全局配置文件中,我们发现没有任何提示信息,所以这个时候我们需要引入dtd约束。方法很简单,就是下图标记的dtd链接,我们按住ctrl并单击他进行下载,这个时候我们的配置文件就会有提示信息了!

接下来就是介绍一些常用的标签了,我们需要注意的是在全局配置文件中,标签是有顺序的,不能随意更改标签的位置,我们可以通过点击configuration标签来查看标签的顺序。

 

properties标签

mybatis可以使用properties来引入外部的properties配置文件的内容,大部分情况是引入我们的数据库配置信息。
1、resource : 引入类路径下的资源
2、url : 引入网络路径或者磁盘路径下的资源

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

settings标签

settings包含很多重要的设置项;比如驼峰命名、缓存等,具体的可以看官方文档,有详细说明。
setting 用来设置每一个设置项
name:设置名
value:设置项取值  

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

typeAliases标签

typeAliases:别名处理器;为我们的java类型起别名;一共有三种起别名的方式;注意别名不区分大小写!

例如mapper.xml文件中我们sql语句的返回值类型我们就可以用这边的别名替换 

<typeAliases>
	  	<!--
	  	 	(1)typeAlias:为某个Java类型起别名
	  	 		type:指定要取别名的类型全类名;默认别名就是类型小写
	  	 		alias:指定新的别名
	  	 -->
	  	<!-- <typeAlias type="cc_study.pojo.Employee" alias="testAlias"/> -->
	  	
	  	<!-- 
	  		(2)package:为某个包下的所有l类批量起别名
	  			name:指定包名(为当前包下的所有类起别名,默认类名小写 )
	  	 -->
	  	<package name="cc_study.pojo"/>
	  	
	  	<!-- (3)在类中使用Alias注解指定新的别名 -->
</typeAliases>

environments标签

	<!-- 
		environments:mybatise可以配置多种环境,default指定使用某种环境。
			environment:配置一个具体的环境信息,必须有两个标签;id代表当前环境的唯一标识
				transactionManager:事务管理器
					type:事务管理器的类型(jdbc,managed)
				dataSource:数据源
	 -->
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<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>

 databaseIdProvider标签

<!--
		databaseIdProvider:支持多数据库厂商	
				type="DB_VENDOR":作用得到数据库厂商的标识,mybatis根据不同的厂商标识执行不同的sql
			在mapper映射文件中指定该语句是用哪个数据库的语句:在select标签中有一个databaseId属性,我们设置成下面取好的别名就可以一一对应了
	 -->
	<databaseIdProvider type="DB_VENDOR">
		<!-- 为不同的厂商起别名 -->
		<property name="MySQL" value="mysql"/>
		<property name="Oracle" value="oracle"/>
	</databaseIdProvider>

mappers标签

将sql映射注册在全局配置文件中

<mappers>
		<!-- 
			mapper:注册一个sql映射
				注册配置文件
				resource:引用路径下的sql映射文件
				url:引用网络或者磁盘路径
				注册接口
				class:引用(注册)接口
					1、有sql映射文件,映射文件名必须和接口同名,并且放在接口同一目录下
					2、没有sql映射文件,所有的sql利用注解写在接口上
				
				建议:重要的Dao接口推荐使用xml映射文件,不重要的简单的为了快速开发可以使用注解。
					因为直接使用注解后期维护不方便,写比较复杂的语句也不是很方便
		 -->
		<mapper resource="EmployeeMapper.xml" />
		<mapper class="cc_study.mapper.EmployeeMapperAnnotation"/>
		
		<!-- 批量注册:这个时候映射文件和接口文件应该在同一目录下 -->
		<!-- <package name="cc_study.mapper"/> -->
</mappers>

注解方式:

public interface EmployeeMapperAnnotation {

	@Select("select * from employee where id =#{id}")
	Employee getEmpById(Integer id);

}