博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis之优化MyBatis配置文件中的配置
阅读量:7273 次
发布时间:2019-06-29

本文共 1672 字,大约阅读时间需要 5 分钟。

hot3.png

MyBatis配置文件很重要,首先我们来看看MyBatis配置文件中的内容和顺序:

 

123456789101112131415161718
(属性)
(全局配置参数)
(类型别名)
(类型处理器)
(对象工厂)
(插件)
(环境集合属性对象)
(环境子属性对象)
(事务管理) dataSource>(数据源)
(映射器)

 

文件目录结构如下:

1.<properties>属性定义

可以把一些通用的属性值配置在属性文件中,加载到mybatis运行环境内。例如创建db.properties文件,然后在SqlMapperConfig.xml中进行配置。db.properties文件内容如下:

然后在SqlMapperConfig.xml中进行配置:

然后在<environments>标签中用${}符号做如下修改:

注意:Mybatis将按照下面的顺序来加载属性

  • 1.在properties标签之间定义的属性首先被读取。
  • 2.然后会读取properties标签内部resource或url的属性,它会覆盖已读取的同名属性。
  • 3.最后读取parameterType(即insert标签或是update标签或是…)传递的属性,它会覆盖已读取的同名属性。

所以我们建议使用properties标签时,不要在properties标签之间定义属性,只引用在.properties文件中定义的属性,并且.properties文件中定义的key值要有一些特殊的规则。例如我上述定义key值时前面都加了jdbc.的前缀。

2.<settings>全局参数配置

mybatis运行时可以调整一些全局参数(相当于软件的运行参数)。根据使用需求进行参数配置。但是要注意:小心配置,配置参数会影响mybatis的执行。

ibatis的全局配置参数中包括很多的性能参数(最大线程数、最大等待时间…),通过调整这些性能参数使ibatis达到高性能的运行,而mybatis没有这些性能参数,由mybatis自动调节。

3.<typeAliases>属性

可以将parameterType、resultType中指定的类型通过别名引用。MyBatis提供了很多的别名如下:

这里我们采用自定义的别名,在SqlMapperConfig.xml中进行如下配置:

里面包括定义单个别名和批量别名定义(即一次性定义一个包下所有.java文件的别名)。

定义别名后这样我们在parameterType和resultType中使用时就不用再繁琐的指定类的全限定类名了,像下面这样使用即可

4.<typeHandlers>属性

类型处理器将java类型和jdbc类型进行映射,mybatis提供了很多类型处理器,一般情况下够用了。

5.<mapper>映射器属性

之前我们在配置文件中使用的<mapper>标签内容为:<mapper resource=“mapper/UserMapper.xml”/>,接下来我要讲的是另一种在配置文件中映射mapper动态代理的方法。在配置文件中这样配置<mapper class=“mapper.UserMapper”/>,这样的要求需要保证UserMapper.xml文件和UserMapper.java在同一个包下且.xml文件和.java文件名要同名。

同上方别名的配置,当包下出现多个Mapper.java和Mapper.xml时我们采用批量配置:<package name=“mapper”/>,代码如下:

转载于:https://my.oschina.net/u/3881735/blog/1832393

你可能感兴趣的文章
bootstrap-datepicker使用
查看>>
Mobile web开发日记
查看>>
IView组件化之部署及按钮学习
查看>>
经典排序算法总结与实现 ---python
查看>>
CodeForces 909D Colorful Points
查看>>
PAT (Advanced Level) 1084. Broken Keyboard (20)
查看>>
JS图片压缩
查看>>
单文档多视图的实现
查看>>
LVS+Keepalived搭建高可用负载均衡
查看>>
Expert 诊断优化系列------------------你的CPU高么?
查看>>
【Java菜鸟学习总结】Java基础知识(类)
查看>>
[干货]--Spring AOP最佳实践
查看>>
Oracel用rownum实现真分页
查看>>
Unity3D 手游开发中所有特殊的文件夹
查看>>
一日一点RakNet(3)--介绍
查看>>
hbase快速安装
查看>>
String字符串操作题
查看>>
任意长整数求和
查看>>
【python】Selenium隐藏控制台解决办法
查看>>
Home Assistant系列 -- 基于树莓派安装并设置自启动
查看>>