配置文件详解
本文讲解使用Mybatis的基础配置文件配置,详细配置请参考官网
- Environments 指定数据环境
- environment 自定义环境
- transactionManager 事务管理(JDBC|UNMANAGED)
- dataSource 数据源配置
- environment 自定义环境
- properties 指定外部,默认属性
- resource:指定相对于classpath路径的配置文件
- 配置文件内使用el表达式获取外部配置${jdbc.url}
- typeAliases 类型别名
- 指定类型别名,在mapper中可以写别名而不用写全限定类名
- mappers 指定SQL映射文件路径
- resource 相对classpath路径
- url 系统绝对路径
- class 注册接口全限定类名 (会扫描XML和注解)
- package 注册,指定包下所有接口 (会扫描XML和注解)
<configuration>
<!--指定外部配置 resource相对classpath路径, url系统绝对路径-->
<properties resource="jdbc.properties">
<!--此处也可以指定 -->
<property name="jdbc.password" value="ro2t"/>
</properties>
<!-- 属性文件读取优先级顺序
如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载:
首先读取在 properties 元素体内指定的属性。
然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。
最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性。
因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的则是 properties 元素中指定的属性。
-->
<settings>
<!--开启后,mybatis复杂映射,通过指定select属性嵌套查询,会进行懒查询:即只有在使用子查询数据时候,才去数据库查询数据-->
<setting name="lazyLoadingEnabled" value="true"/>
</settings>
<typeAliases>
<!--指定单个类别名-->
<typeAlias type="com.wjy.polo.User" alias="user"/>
<!--指定包下所有类,默认创建别名,别名为实体类名,不区分大小写-->
<!--<package name="com.wjy.polo"/>-->
</typeAliases>
<!--数据源环境-->
<environments default="dev">
<environment id="dev">
<!--事务管理配置 指定 [
JDBC 直接使用了 JDBC 的提交和回滚设施
MANAGED 它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)
]-->
<transactionManager type="JDBC"/>
<!--数据源配置 type[
UNPOOLED 这个数据源的实现会每次请求时打开和关闭连接
POOLED 利用“池”的概念将 JDBC 连接对象组织起来,可复用连接
JNDI 是为了能在如 EJB 或应用服务器这类容器中使用
]-->
<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>
<!--Mapper文件配置指定-->
<mappers>
<!--相对classpath路径-->
<!-- <mapper resource="UserMapper.xml"/> -->
<!--系统绝对路径-->
<!--<mapper url="file:///var/mapper/UserMapper.xml"/>-->
<!--
使用映射器接口实现类的完全限定类名
(会扫描XML和注解)
要求接口和映射文件,同包,同名
-->
<!-- <mapper class="com.wjy.dao.IUserDao"/> -->
<!--
推荐使用
将包内的映射器接口实现全部注册为映射器
(会扫描XML和注解)
要求接口和映射文件,同包,同名
-->
<package name="com.wjy.dao"/>
</mappers>
</configuration>