Mybatis面试总结(下):xml文件和mybatis内部结构的映射关系是?为什么说MyBatis是半自动ORM?它与全自动的区别是?
简述 MyBatis 的 xml 映射文件和 MyBatis 内部数据结构之间的映射关系?
MyBatis
将所有 xml
配置信息都封装到 All-In-One
重量级对象 Configuration
内部。
在 xml
映射文件中, <parameterMap>
标签会被解析为 ParameterMap
对象,其每个子元素会被解析为 ParameterMapping
对象。 <resultMap>
标签会被解析为ResultMap
对象,其每个子元素会被解析为 ResultMapping
对象。
每一个 <select>、<insert>、<update>、<delete>
标签均会被解析为 MappedStatement
对象,标签内的 sql
会被解析为 BoundSql
对象。
为什么说 MyBatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
Hibernate
属于全自动 ORM
映射工具,使用其查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。
而MyBatis
在查询关联对象或关联集合对象时,需要手动编写 sql
来完成,所以,称之为半自动 ORM
映射工具。