首先看一下该全局配置文件中都有哪些能够配置的东西:java
配置内容 | 做用 |
---|---|
<properties> |
用来加载属性文件 |
<settings> |
用来设置全局参数 |
<typeAliases> |
用来设置类型的别名 |
<typeHandlers> |
用来设置类型处理器 |
<objectFactory> |
用来设置对象工厂 |
<plugins> |
用来设置插件 |
<environments> |
用来设置mybatis的环境 |
<mappers> |
用来配置映射文件 |
从前面的博文中能够看出,<environments>
是用来配置mybatis的环境的,在和Spring整合前是由mybatis本身管理的,可是和Spring整合后,这些配置都将被废弃掉,<environments>
部分在前面已经有提到过,这里就再也不赘述了。而后objectFactory和plugins通常咱们不用,因此在这里就不总结了,<typeHandlers>
类型处理器是mybatis中用来完成jdbc类型和java类型之间转换的,mybatis默认支持的类型处理器基本够咱们使用了,通常不须要自定义。这里主要来总结一下剩下的几个配置的用法。数据库
咱们以前链接数据库的一些配置都是在<environments>
中写死的,在实际开发中确定不是这样子的,咱们须要将数据库链接参数单独配在jdbc.properties文件中,而后在mybatis.xml中加载jdbc.properties的属性值便可,这就用到了<properties>
了。即:缓存
<!-- 加载properties文件--> <properties resource="jdbc.properties"></properties> <!-- 配置mybatis的环境信息 --> <environments default="development"> <environment id="development"> <!-- 配置JDBC事务控制,由mybatis进行管理 --> <transactionManager type="JDBC"></transactionManager> <!-- 配置数据源,采用mybatis链接池 --> <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>
在<properties>
内部还能够定义属性值:<property name="" value=""/>
,在property中定义的属性也能够被<evironments>
中来加载.mybatis
mybatis框架在运行时能够调整一些运行参数,好比:开启二级缓存、开启延迟加载等,有个settings全局参数配置文档: 这些全局参数的配置会影响mybatis的运行行为,须要的时候再设置,不须要的时候不能乱设置,这里就不作详细介绍了,等后面用到的时候我再针对相应的作一下介绍。app
这是配置中的一个重点,咱们知道,在mapper.xml中定义了不少的statement,statement须要parameterType来指定输入参数的类型、须要resultType来指定输出结果的类型。若是在指定类型时输入类型全路径,有时候会很长,不方便进行开发,那么咱们就能够能够针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中经过别名<typeAliases>
来定义,方便开发。框架
mybatis有默认支持的一些别名,通常基本类型都有别名,以下: 可是针对pojo的须要咱们自定义别名了,好比咱们将本身定义的User对象取个别名为user:url
<typeAliases> <typeAlias type="com.qfedu.entities.User" alias="user"></typeAlias> </typeAliases>
可是问题来了,若是工程中有不少pojo,那岂不是完蛋……这得定义多少个啊,因此mybatis帮咱们解决了这个问题,它提供了批量别名的定义,以下:spa
<typeAliases> <package name="com.qfedu.entities"></package> </typeAliases>
咱们前面使用到的<mappers>
标签是经过resource方法加载单个映射文件的,即:插件
<mappers> <!-- 使用资源的路径 --> <mapper resource="com/qfedu/mapper/UserMapper.xml"/> </mappers>
除了resource外,也能够用代理
url来加载,只不过url指定的是绝对路径,硬盘中的路径;
经过mapper接口来加载。经过mapper接口来加载的话要遵循一个规范:
规范:须要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中 这个规范的前提是:使用的是mapper代理的方法
<mappers> <mapper class="com.qfedu.mapper.UserMapper"></mapper> </mappers>
此时UserMapper.java要和UserMapper.xml在同一目录。
咱们只要指定mapper接口的包名,mybatis自动扫描包下面全部的mapper接口进行加载
<mappers> <mapper class="com.qfedu.mapper"></mapper> </mappers>