文档结构(文档的声明)
<?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">
文档的主要元素
properties:在配置文件中使用别的properties文件的配置,实现文件的分离
****1.加入配置****
<properties resource="db.properties"></properties>
****2.创建db.properties****
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://127.0.0.1:3306/mybatisdemo
db.username=root
db.password=xbx
**3.使用db.properties中的内容**
<!--数据源配置-->
<dataSource type="POOLED">
<property name="driver" value="${db.driver}"></property>
<property name="url" value="${db.url}"></property>
<property name="username" value="${db.username}"></property>
<property name="password" value="${db.password}"></property>
</dataSource>
settings:改变mybatis运行时的行为
typeAliases:设置别名
- 在使用全名的时候可以使用别名,见少代码量(主要在实体映射文件中使用)
<!--配置别名-->
<typeAliases>
<!--在使用domain.User的地方可直接使用user-->
<typeAlias type="domain.User" alias="user"></typeAlias>
<!--自动映射别名 别名为类名的首字母小写-->
<package name="domain"></package>
</typeAliases>
- 默认的别名
typeHandlers:进行类型转换
- 将java中的类型与数据库中的数据类型进行映射 如:string->varchar
- 默认的类型处理器
objectFactory:当MyBatis创建对象时候调用的方法
- 感觉没啥用 用到时候补充吧
environments:配置环境
- 示例配置
<!--配置连接的数据库-->
<environments default="mysql">
<environment id="mysql">
<!--制定事务类型 -->
<transactionManager type="JDBC"></transactionManager>
<!--数据源配置-->
<dataSource type="UNPOOLED">
<property name="driver" value="${db.driver}"></property>
<property name="url" value="${db.url}"></property>
<property name="username" value="${db.username}"></property>
<property name="password" value="${db.password}"></property>
</dataSource>
</environment>
</environments>
-
<environments default="mysql">的default属性应该为 <environment id="mysql">的id属性之一
- 一个MyBatis可以配置多个环境,也就是多个数据源,但是每个SqlSessionFactory只可以对应于一个环境。
- <transactionManager type=""/>可选type属性为JDBC和MANAGED,但是当使用spring时就就会使用spring的事务管理覆盖MyBatis的事务管理
- <dataSource type="">,指定数据源,type可选配置:UNPOOLED和POOLED还有JNDI
UNPOOLED:不使用连接池
POOLED:使用连接池(除了上述配置还有以下配置)
mapper:配置映射文件的位置
- 可以为单独的文件也可以为包
<mappers>
<!--<mapper resource="mapper/userMapper.xml"></mapper>-->
<package name="domain"></package>
</mappers>