可以配置内容
properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)(废弃)
plugins(插件)(废弃)
environments(环境集合属性对象)
environment(环境子属性对象)
transactionManager(事务管理)
dataSource(数据源)
mappers(映射器)
properties(属性)
mybatis将按照下面的顺序来加载属性
(1)在properties元素内体定义的属性首先会被读取。
(2)然后会读取properties元素中resource或者URL加载的属性,它会覆盖已经读取同名的属性。
(3)最后读取parameterType传递的属性,它会覆盖已经读取同名的属性。
如何读取属性:
使用OGNL表达式。
${xx.yy.zz}
建议:
(1)不要在properties元素体内添加任何属性值,只将属性值定义到properties文件中。
(2)在properties文件定义的属性名要有一定的特殊性,不能和系统,其他框架的名字重复。
xxx.yyy
jdbc.url
redis.url
settings(全局配置参数)(了解)
mybatis全局配置参数
相关参数看文档
typeAliases(类型别名)
在Mapper.xml中,定义了很多statement,statement需要parameterType指定输入参数的类型和resultType指定结果映射的类型。如果在指定类型的时候,写“全路径”不大方便开发,可以针对parameterType和resultType指定的类型提供别名,在Mapper.xml中使用别名。
(1)系统已经支持的别名
(2)自定义别名
方式一:单个
<!--类型别名-->
<typeAliases>
<!--单个
type:类型全路径
alias:别名
-->
<typeAlias type="com.sgl.demo4.pojo.User" alias="user"></typeAlias>
</typeAliases>
方式二:批量
<!--类型别名-->
<typeAliases>
<!--单个
type:类型全路径
alias:别名
-->
<typeAlias type="com.sgl.demo4.pojo.User" alias="user"></typeAlias>
<!--批量
name:指定包名,mybatis自动扫描表的po类,
别名:就是类名(首字母不区分大小写)
-->
<package name="com.sgl.demo4.pojo"></package>
<package name="com.sgl.demo4.mapper"></package>
</typeAliases>
typeHandlers(类型处理器)
mybatis中通过typeHandlers完成JDBC类型和Java类型的转换。通常情况下,mybatis提供的类型处理器已经可以满足日常开发的需要,不要在自定义了。
mappers(映射器)
(1)方式一:通过resource加载
(2)方式二:通过URL地址
使用完全限定路径,绝对路径
(3)方式三:通过Mapper接口加载
(4)方式四:批量加载(推荐)
<mappers>
<!--方式一
通过resource加载
-->
<!--<mapper resource="com/sgl/demo4/mapper/UserMapper.xml"></mapper>-->
<!--方式二 通过URL地址
使用完全限定路径 绝对路径
-->
<!--<mapper url="file:///C:\Users\sgl\Documents\Tencent Files\296818400\Maven-Mybatis1\src\main\java\com\sgl\demo4\mapper\UserMapper.xml"></mapper>-->
<!-- mapper class
方法三通过mapper接口加载
批量加载mapper
需要遵循的一些规则:
(1)需要将mapper接口和mapper映射文件放在一起
(2)遵循使用mapper开发Dao的要求
-->
<!--<mapper class="com.sgl.demo4.mapper.UserMapper"></mapper>-->
<!--package
方法四 批量加载推荐
批量加载mapper
需要遵循的一些规则:
(1)需要将mapper接口和mapper映射文件放在一起
(2)遵循使用mapper开发Dao的要求
-->
<package name="com.sgl.demo4.mapper"></package>
</mappers>