全局配置文件中都有哪些可以配置的东西:
![](https://img.haomeiwen.com/i9394592/0577670c7ce395eb.png)
<typeHandlers>类型处理器是mybatis中用来完成jdbc类型和java类型之间转换的,mybatis默认支持的类型处理器基本够我们使用了,一般不需要自定义。
1. properties加在属性文件
将数据库连接参数单独配在db.properties文件中,然后在SqlMapConfig.xml中加载db.properties的属性值即可,这就用到了<properties>了。
即:<properties resource="db.properties">,然后environment中做一下对应的修改即可:
![](https://img.haomeiwen.com/i9394592/c1bc1cabab181481.png)
在<properties>内部还可以定义属性值:<property name="" value=""/>,在property中定义的属性也可以被<evironments>中来加载,这就涉及到了mybatis加载属性的顺序了:
![](https://img.haomeiwen.com/i9394592/06f3e6bbb3304c26.png)
建议:从上面可以看出来,如果在<properties>中定义属性的话,有点乱,搞不好就会出错,所以开发中不要在<properties>元素体内添加任何属性值,只将属性值定义在properties文件中。另外在properties文件中定义的属性名要有一定的特殊性,如xxx.xxx,这样不容易和其他的一些属性值起冲突。
2. settings全局参数配置
mybatis框架在运行时可以调整一些运行参数,比如:开启二级缓存、开启延迟加载等,有个settings全局参数配置文档:
![](https://img.haomeiwen.com/i9394592/8a53c684b8d0f95e.png)
全局参数的配置会影响mybatis的运行行为,需要的时候再设置,不需要的时候不能乱设置
3. typeAliases类型别名
在mapper.xml中定义了很多的statement,statement需要parameterType来指定输入参数的类型、需要resultType来指定输出结果的类型。
如果在指定类型时输入类型全路径,有时候会很长,不方便进行开发,那么我们就可以可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名<typeAliases>来定义,方便开发。
mybatis有默认支持的一些别名,一般基本类型都有别名,如下:
![](https://img.haomeiwen.com/i9394592/6a3c13ec15208f1e.png)
针对pojo的需要我们自定义别名了,比如我们将自己定义的User对象取个别名为user,如下。
![](https://img.haomeiwen.com/i9394592/f2d8e7ba212336f6.png)
然后输入参数或者输出结果为mybatis.po.User时,就可以用user来代替了,如下:
![](https://img.haomeiwen.com/i9394592/98b71a90c30a0289.png)
如果工程中有很多pojo,那岂不是完蛋……这得定义多少个啊,所以mybatis帮我们解决了这个问题,它提供了批量别名的定义,如下:
![](https://img.haomeiwen.com/i9394592/7a29d6c27b0bc715.png)
如果进行了上面这样设置,那么所有放在mybatis.po包下的pojo都可以不用定义了,直接使用类名就可以了,所以我们直接使用user即可。毫无疑问,开发中肯定使用这个批量的别名定义。
3. mappers映射的配置
<mappers>标签是通过resource方法加载单个映射文件的,即:
![](https://img.haomeiwen.com/i9394592/8d5d8aefe7170188.png)
除了resource外,也可以用url来加载,只不过url指定的是绝对路径,硬盘中的路径。
另一种加载映射文件的方式:通过mapper接口来加载。通过mapper接口来加载的话要遵循一个规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中。这个规范的前提是:使用的是mapper代理的方法。
上面的配置就可以改成:
![](https://img.haomeiwen.com/i9394592/0012fe9de83350d2.png)
所以要把原来的UserMapper.xml从config/mapper中的拖到和UserMapper.java一个目录下且同名,如下:
![](https://img.haomeiwen.com/i9394592/9ccca63b56ac8e14.png)
有个弊端,就跟上面那个别名的配置一样,如果现在有好多个mapper咋整,所以mybatis也给我们提供了批量加载方法:我们只要指定mapper接口的包名,mybatis自动扫描包下面所有的mapper接口进行加载。当然,还是要遵循上面的那个规范。所以我们可以修改上面的配置:
![](https://img.haomeiwen.com/i9394592/a23f536f237aa13b.png)
mybatis.mapper包下的所有mapper.xml映射文件都可以加载了,这就更加简洁了。在开发中推荐使用这种批量加载映射文件的方法。
参考:https://mp.weixin.qq.com/s/qyik7_q9EbQaUVD6b07c7A
网友评论