MyBatis配置文件很重要,首先咱们来看看MyBatis配置文件中的内容和顺序:
java
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>(映射器) |
<properties>
属性定义能够把一些通用的属性值配置在属性文件中,加载到mybatis运行环境内。例如建立db.properties文件,而后在SqlMapperConfig.xml中进行配置。db.properties文件内容以下:app
而后在SqlMapperConfig.xml中进行配置:性能
而后在<environments>
标签中用${}
符号作以下修改:url
注意:Mybatis将按照下面的顺序来加载属性spa
因此咱们建议使用properties标签时,不要在properties标签之间定义属性,只引用在.properties文件中定义的属性,而且.properties文件中定义的key值要有一些特殊的规则。例如我上述定义key值时前面都加了jdbc.的前缀。插件
<settings>
全局参数配置mybatis运行时能够调整一些全局参数(至关于软件的运行参数)。根据使用需求进行参数配置。可是要注意:当心配置,配置参数会影响mybatis的执行。线程
ibatis的全局配置参数中包括不少的性能参数(最大线程数、最大等待时间…),经过调整这些性能参数使ibatis达到高性能的运行,而mybatis没有这些性能参数,由mybatis自动调节。代理
<typeAliases>
属性能够将parameterType、resultType中指定的类型经过别名引用。MyBatis提供了不少的别名以下:code
这里咱们采用自定义的别名,在SqlMapperConfig.xml中进行以下配置:
里面包括定义单个别名和批量别名定义(即一次性定义一个包下全部.java文件的别名)。
定义别名后这样咱们在parameterType和resultType中使用时就不用再繁琐的指定类的全限定类名了,像下面这样使用便可
<typeHandlers>
属性类型处理器将java类型和jdbc类型进行映射,mybatis提供了不少类型处理器,通常状况下够用了。
<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”/>
,代码以下: