MyBatis的全局配置文件中包含了影响MyBatis行为甚深的设置(settings)和属性(properties)信息,文档的顶层结构如下: 其中,MyBatis全局配置文件的具体测试代码下载地址:http://download.csdn.net/download/bingbeichen/9813367。
1. 引入dtd约束文件
在Eclipse中引入XML文件的dtd约束文件,方便编写XML文件时有相应的提示;其中,dtd文件位于MyBatis所依赖jar包的org.apache.ibatis.builder.xml包中,可以通过解压文件的方式来获取。具体引入操作请自行查询完成。
2. properties标签:引入外部属性文件
jdbc.username=root
jdbc.password=root
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
<configuration>
<properties resource="db.properties"></properties>
<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>
<mappers>
<mapper resource="EmployeeMapper.xml" />
</mappers>
</configuration>
3. settings标签:设置运行时行为
4. typeAliases标签:别名处理器
可以使用typeAliases标签为某个Java类起一个简短的别名,注意别名不区分大小写。
<typeAliases>
<typeAlias type="com.qiaobc.mybatis.bean.Employee" alias="emp"/>
<package name="com.qiaobc.mybatis.bean"/>
</typeAliases>
值得注意的是,MyBatis已经为许多常见的Java类型内建了相应的类型别名;其都是大小写不敏感的,故在起别名的时候千万不要占用已有的內建别名。
5. typeHandlers标签:类型处理器
类型处理器可以理解为数据库类型和Java类型之间的桥梁。无论是MyBatis在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成Java类型。 日期类型处理:日期和时间类型的处理在JDK1.8以前一直是个头疼的问题,我们通常使用JSR310规范领导者Stephen Colebourne创建的Joda-Time来操作,而JDK1.8已经实现了全部的JSR310规范;在日期时间处理上,可以使用MyBatis基于JSR310(Date and Time API)编写的各种日期时间类型处理器;MyBatis3.4以前的版本需要手动注册这些处理器,以后的版本都是自动注册的。 自定义类型处理器:需要实现org.apache.ibatis.type.TypeHandler接口或者继承org.apache.ibatis.type.BaseTypeHandler,再指定其映射某个JDBC类型(可选操作),并在MyBatis全局配置文件中进行注册。
6. plugins标签:插件
插件是MyBatis提供的一个非常强大的机制,可以通过插件来修改MyBatis的一些核心行为;插件通过动态代理机制,可以介入四大对象的任意方法的执行。
Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)ParameterHandler (getParameterObject, setParameters)ResultSetHandler (handleResultSets, handleOutputParameters)StatementHandler (prepare, parameterize, batch, update, query)
7. environments标签:运行环境
需要注意的是,实际开发中使用Spring管理数据源,并进行事务控制的配置来覆盖上述配置,故上述内容了解即可。
8. databaseIdProvider标签:多数据库支持
<environments default="dev_mysql">
<environment id="dev_mysql">
<transactionManager type="JDBC"></transactionManager>
<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>
<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>
<databaseIdProvider type="DB_VENDOR">
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>
<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"
databaseId="mysql">
select * from tbl_employee where id = #{id}
</select>
<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"
databaseId="oracle">
select EMPLOYEE_ID id,LAST_NAME lastName,EMAIL email
from employees where EMPLOYEE_ID=#{id}
</select>
9. mappers标签:注册SQL映射文件
<mappers>
<package name="com.atguigu.mybatis.dao"/>
</mappers>
转载请注明原文地址: https://ju.6miu.com/read-666944.html