MyBatis笔记:全局配置文件中各标签使用说明

全局配置文件中标签的使用说明

标签使用是有顺序的不然会报错

顺序就是这里面的顺序→→→→Content Model : (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, 
 objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)

properties标签

mybatis可以使用properties来引入外部properties配置文件的内容;
    resource:引入类路径下的资源
    url:引入网络路径或者磁盘路径下的资源

科普:

驼峰命名法(Camel Case):
小驼峰命名法(Lower Camel Case):
第一个单词的首字母小写;第二个单词开始每个单词的的首字母大写。例如:firstName、lastName。
大驼峰命名法(Upper Camel Case:
每一个单词的首字母都大写。例如:FirstName、LastName、CamelCase。也被称为 Pascal 命名法(Pascal Case),源自于 Pascal 语言的命名惯例。

settings标签

settings包含了很多重要的设置项
    setting:用来设置每一个设置项
        name:设置项名
        value:设置项取值

typeAliases标签

typeAliases:别名处理器,可以为我们的java类型起别名
                别名不区分大小写

typeAlias:为某个java类型起别名
            type:指定要起别名的类型全类名;默认别名就是类名小写;employee
            alias:指定新的别名

package:为某个包下所有类批量起别名 
         name:指定包(为当前包以及下面所有的后代包的每一个类都起一个默认别名(类名小写)

environments标签

environments:环境们,mybatis可以配置多种环境,default指定使用某种环境。可以达到快速切换环境。
        environment:配置一个具体的环境信息;必须有两个表情:id代表当前环境的唯一标识
            transactionManager:事务管理器;
                        type:事务管理器的类型 JDBC(JdbcTransactionFactory)丨MANAGED(ManagedTransactionFactory)
                            自定义事务管理器:实现TransactionFactory接口.type指定为全类名
            dataSource:数据源
                type:数据源 
                UNPOOLED(UnpooledDataSourceFactory)
                |POOLED(PooledDataSourceFactory)
                |JNDI(JndiDataSourceFactory)
                POOLED即使用连接池技术
            自定义数据源:实现DataSourceFactory接口,type是全类名

databaseIdProvider标签

databaseIdProvider:支持多数据库厂商的;
        type="DB_VENDOR":VendorDatabaseIdProvider
        作用就是得到数据库厂商的标识(驱动getDatabaseProductName()),mybatis就能根据数据库厂商的标识来执行不同的sql;
         MySQL,Oracle,SQL Server,xxxx

mappers标签

mappers:将sql映射注册到全局配置中

将我们写好的sql映射文件一定要注册到全局配置文件中 

mapper:注册一个sql映射
        注册配置文件
        resource:引用类路径下的sql映射文件
        url:引用网络路径或者磁盘路径下的sql映射文件
        注册接口:
        class:引用(注册)接口
            1、有sql映射文件,映射文件必须和接口同名,并且放在与接口同一目录下;
            2、没有sql映射文件,所有的sql都是利用注解写在接口上
        推荐:比较重要的Dao接口我们来写sql映射文件
             不重要,简单的Dao接口为了开发快速可以使用注解;

批量注册: 注册指定包如com.yorkmass.mybatis.dao包下面所有的文件。
       有sql映射文件,映射文件要和接口同名,并且放在一个注册包下。
       为了好看,可以在conf(类路径文件夹)下面新建一个和注册包(com.yorkmass.mybatis.dao)同名的包存放sql配置文件
       没有sql映射文件,需要写注解

<?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>
<!-- 

	1.mybatis可以使用properties来引入外部properties配置文件的内容;
	resource:引入类路径下的资源
	url:引入网络路径或者磁盘路径下的资源
	 -->
	 <properties resource="dbconfig.properties"></properties>
<!-- 
 驼峰命名法(Camel Case):
小驼峰命名法(Lower Camel Case):
第一个单词的首字母小写;第二个单词开始每个单词的的首字母大写。例如:firstName、lastName。
大驼峰命名法(Upper Camel Case:
每一个单词的首字母都大写。例如:FirstName、LastName、CamelCase。也被称为 Pascal 命名法(Pascal Case),源自于 Pascal 语言的命名惯例。
	2.settings包含了很多重要的设置项
	setting:用来设置每一个设置项
		name:设置项名
		value:设置项取值
 -->
<settings>
	<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

<!-- 3、typeAliases:别名处理器,可以为我们的java类型起别名
				别名不区分大小写
			 -->
<typeAliases>
<!-- typeAlias:为某个java类型起别名
			type:指定要起别名的类型全类名;默认别名就是类名小写;employee
			alias:指定新的别名
			 -->
	<!-- 默认起别名<typeAlias type="com.yorkmass.mybatis.bean.Employee" /> -->
	<!-- <typeAlias type="com.yorkmass.mybatis.bean.Employee" alias="employee1"/> 指定新的别名-->
	<!--package:为某个包下所有类批量起别名 
		 name:指定包(为当前包以及下面所有的后代包的每一个类都起一个默认别名(类名小写)
	-->
	<package name="com.yorkmass.mybatis.bean"/>
	<!-- 批量起别名的情况下,使用@Alias注解为某个类型指定新的别名 -->
</typeAliases>

<!-- 
	4、environments:环境们,mybatis可以配置多种环境,default指定使用某种环境。可以达到快速切换环境。
		environment:配置一个具体的环境信息;必须有两个表情:id代表当前环境的唯一标识
			transactionManager:事务管理器;
						type:事务管理器的类型 JDBC(JdbcTransactionFactory)丨MANAGED(ManagedTransactionFactory)
							自定义事务管理器:实现TransactionFactory接口.type指定为全类名
			dataSource:数据源
				type:数据源 
				UNPOOLED(UnpooledDataSourceFactory)
				|POOLED(PooledDataSourceFactory)
				|JNDI(JndiDataSourceFactory)
				POOLED即使用连接池技术
			自定义数据源:实现DataSourceFactory接口,type是全类名
			
 -->

<environments default="dev_mysql">
<!-- <environments default="dev_oracle"> -->

<environment id="dev_oracle">
	<transactionManager type="JDBC"></transactionManager>
	<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>


<environment id="dev_mysql">
<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>

<!-- 5、databaseIdProvider:支持多数据库厂商的;
		type="DB_VENDOR":VendorDatabaseIdProvider
		作用就是得到数据库厂商的标识(驱动getDatabaseProductName()),mybatis就能根据数据库厂商的标识来执行不同的sql;
	 	MySQL,Oracle,SQL Server,xxxx
-->
<databaseIdProvider type="DB_VENDOR">
<!-- 为不同的数据库厂商起别名 -->
	<property name="MySQL" value="mysql"/>
	<property name="Oracle" value="oracle"/>
	<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>

<!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 -->
<!-- 
	6、mappers:将sql映射注册到全局配置中
	
 -->
<mappers>

<!-- 
	mapper:注册一个sql映射
		注册配置文件
		resource:引用类路径下的sql映射文件
		url:引用网络路径或者磁盘路径下的sql映射文件
		注册接口:
		class:引用(注册)接口
			1、有sql映射文件,映射文件必须和接口同名,并且放在与接口同一目录下;
			2、没有sql映射文件,所有的sql都是利用注解写在接口上
		推荐:比较重要的Dao接口我们来写sql映射文件
			 不重要,简单的Dao接口为了开发快速可以使用注解;
 -->
<!--  <mapper resource="EmployeeMapper.xml"/>
<mapper class="com.yorkmass.mybatis.dao.EmployeeMapperAnnotation"/>
-->
<!-- 批量注册: 注册指定包如com.yorkmass.mybatis.dao包下面所有的文件。
	   有sql映射文件,映射文件要和接口同名,并且放在一个注册包下。
	   为了好看,可以在conf(类路径文件夹)下面新建一个和注册包(com.yorkmass.mybatis.dao)同名的包存放sql配置文件
	   没有sql映射文件,需要写注解
-->
<package name="com.yorkmass.mybatis.dao"/>
</mappers>
</configuration>

接口上注解的写法

package com.yorkmass.mybatis.dao;

import org.apache.ibatis.annotations.Select;

import com.yorkmass.mybatis.bean.Employee;

public interface EmployeeMapperAnnotation {

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

补充

conf类路径下新建一个和注册包同名的包存放sql配置文件

其实他们是一个文件夹,包:com.yorkmass.mybatis.dao

图片示例:

posted @ 2019-01-25 15:39  yorkmass  阅读(418)  评论(0)    收藏  举报