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 映射工具。
