MyBatis配置文件很重要,首先我们来看看MyBatis配置文件中的内容和顺序:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18<properties>(属性)
<setting>(全局配置参数)
<typeAliases>(类型别名)
<typeHandlers>(类型处理器)
<objectFactory>(对象工厂)
<plugins>(插件)
<environments>(环境集合属性对象)
<environment>(环境子属性对象)
<transactionManager>(事务管理)
dataSource>(数据源)
<mappers>(映射器)
文件目录结构如下:
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”/>
,代码如下:
2018.3.19更
欢迎加入我的Java交流1群:659957958。
2018.4.21更:如果群1已满或者无法加入,请加Java学习交流2群:305335626 。
6.联系
If you have some questions after you see this article,you can tell your doubts in the comments area or you can find some info by clicking these links.