转载请注明出处:
前面有写到
MyBatis的全局配置文件SqlMapConfig.xml,配置内容和顺序如下:
properties(属性)
setting(全局配置参数)
typeAliases(类名别名)
typeHandlers(类名处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
environment(环境子属性对象)
transationManager(事务管理)
dataSource(数据源)
mappers(映射器)
1.properties(属性)
需求:
将数据库连接参数单独配置在db.properties中,只需要在SqlMapConfig.xml中加载db.properties的属性值。在SqlMapConfig.xml中就不需要对数据库连接参数硬编码。
将数据库连接参数只配置在db.properties中,原因:方便对参数进行统一管理,其它xml可以引用该db.properties。
在classpath下定义db.properties文件:
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc\:mysql\://localhost\:3306/mybatisdemojdbc.username=rootjdbc.password=
在SqlMapConfig.xml加载属性文件:
properties特性:
注意:MyBatis将按照下面的顺序来加载属性:
(1)在properties元素体内定义的属性首先被读取。
(2)然后会读取properties元素中resourse或url加载的属性,它会覆盖已读取的同名属性。
(3)最后读取parameterType传递的属性,它会覆盖已读取的同名属性。
所以这里可能就会存在一个问题:假如UserMapper.xml中的有一个statement的入参名为name,
而db.properties中也有一个参数名叫name。
那最终UserMapper.xml中的select会读取到name=root,而不是用户传入的值。
建议:
不要在properties元素体内添加任何属性值,只将属性值定义在properties文件中。
在properties文件中定义属性名要有一定的特殊性,如:xxx.xxx.xxx,jdbc.url,jbdc.username。
2.settings(全局参数配置)
MyBatis框架在运行时可以调整一些运行参数。
比如:开启二级缓存、开启延迟加载......
全局参数将会影响MyBatis的运行行为。
3.typeAliases(别名)重点
3.1需求
在mapper.xml中,定义很多的statement,而statement需要parameterType指定输入参数的类型,需要resultType指定输出结果的映射类型。
如果在指定类型时输入类型全路径,不方便进行开发。可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发。
3.2mybatis默认支持别名
3.3自定义别名
3.3.1单个别名定义
引用别名:
3.3.2批量定义别名(常用)
4.typeHandlers(类型处理器)
MyBatis中通过typeHandlers完成jbdc类型和java类型的转换。通常情况下,MyBatis提供的类型处理器满足日常需要,不需要自定义。
5.mappers(映射配置)
5.1通过resource加载单个文件
5.2通过mapper接口加载单个mapper
按照上边的规范,将mapper.java和mapper.xml放在一个目录,且同名。
5.3批量加载mapper(推荐使用)
如果此文对您有帮助,微信打赏我一下吧~