mybatis配置文件详解

首先看一下该全局配置文件中都有哪些可以配置的东西:

配置内容作用
< properties>用来加载属性文件
< settings >用来设置全局参数
< typeAliases >用来设置类型的别名
< typeHandlers >用来设置类型处理器
< objectFactory >用来设置对象工厂
< plugins >用来设置插件
< environments >用来设置mybatis的环境
< mappers >用来配置映射文件

从前面的博文中可以看出,是用来配置mybatis的环境的,在和Spring整合前是由mybatis自己管理的,但是和Spring整合后,这些配置都将被废弃掉,部分在前面已经有提到过,这里就不再赘述了。然后objectFactory和plugins一般我们不用,所以在这里就不总结了,类型处理器是mybatis中用来完成jdbc类型和java类型之间转换的,mybatis默认支持的类型处理器基本够我们使用了,一般不需要自定义。这里主要来总结一下剩下的几个配置的用法。

1.properties加载属性文件

我们之前连接数据库的一些配置都是在中写死的,在实际开发中肯定不是这样子的,我们需要将数据库连接参数单独配在jdbc.properties文件中,然后在mybatis.xml中加载jdbc.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 >中来加载.

2.settings全局参数设置

mybatis框架在运行时可以调整一些运行参数,比如:开启二级缓存、开启延迟加载等,有个settings全局参数配置文档:   这些全局参数的配置会影响mybatis的运行行为,需要的时候再设置,不需要的时候不能乱设置,这里就不做详细介绍了,等后面用到的时候我再针对相应的做一下介绍。

3.typeAliases类型别名

这是配置中的一个重点,我们知道,在mapper.xml中定义了很多的statement,statement需要parameterType来指定输入参数的类型、需要resultType来指定输出结果的类型。如果在指定类型时输入类型全路径,有时候会很长,不方便进行开发,那么我们就可以可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名< typeAliases>来定义,方便开发。

mybatis有默认支持的一些别名,一般基本类型都有别名,如下:   但是针对pojo的需要我们自定义别名了,比如我们将自己定义的User对象取个别名为user:

<typeAliases>
	 <typeAlias type="com.qfedu.entities.User" alias="user"></typeAlias>
</typeAliases>

但是问题来了,如果工程中有很多pojo,那岂不是完蛋……这得定义多少个啊,所以mybatis帮我们解决了这个问题,它提供了批量别名的定义,如下:

<typeAliases>
	 <package name="com.qfedu.entities"></package>
</typeAliases>

4.Mappers映射配置

我们前面使用到的< 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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值