本文主要是介绍十三、resultMap解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
分为两部分:解析和使用
解析
1.解析XML的时候单独解析所有的resultMap标签,封装成ResultMap对象存入configuration中
2.解析XML中的SQL语句,封装MappedStatement对象,这里会根据SQL的返回类型是resultMap还是resultType做处理。如果是resultMap,就从configuration中取出ResultMap对象设置到MappedStatement中;如果是resultType,就将其封装成一个ResultMap对象设置到MappedStatement中。
使用
1.执行完的结果集会被ResultSetWrapper包装,有两个属性mappedColumnNamesMap和unMappedColumnNamesMap,其实就是如果执行的这个SQL如果是resultMap,mappedColumnNamesMap有值;如果是resultType,那么unMappedColumnNamesMap有值。
2.做结果集映射,如果是resultMap,执行的是DefaultResultSetHandler#applyPropertyMappings方法,根据resultMap的映射一个个设置值;
如果是resultType,执行的是DefaultResultSetHandler#applyAutomaticMappings方法,进行自动映射,这里metaObject.findProperty(propertyName, true);
使用驼峰要设置为true,否知会拿不到实体类的属性
这篇关于十三、resultMap解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!