Mybatis3.3.x技术内幕(十):Mybatis初始化流程(下)

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:35   3207   0

Mybatis初始化过程中,解析parameterMap、resultMap、"select|insert|update|delete"元素,无疑是重头戏。本节将详细分析解析过程。

元素parameterMap将会解析为ParameterMap对象,该对象包含一个List<ParameterMapping>集合,是one-to-many关系。

元素resultMap将会解析为ResultMap对象,该对象包含一个List<ResultMapping>集合,是one-to-many关系

元素"select|insert|update|delete"将会被解析为MappedStatement对象,该对象包含了ParameterMap、ResultMap等对象。

1. 解析parameterMap元素

161124_aIyE_2727738.jpg

(Made In Visual Paradigm)

MapperBuilderAssistant是一个通用构建Mapper辅助类。

ParameterMapping.Builder用于构建ParameterMapping对象,而ParameterMap.Builder则用于构建ParameterMap对象。

其中resolveTypeHandler()很重要,我们自定义的TypeHandler要起作用,就靠该方法正确绑定TypeHandler了,后续会单独开一篇关于TypeHandler的文章。

下面看看Mabtis解析parameterMap元素的源码。

  private void parameterMapElement(List<XNode> list) throws Exception {
    for (XNode parameterMapNode : list) {
      String id = parameterMapNode.getStringAttribute("id");
      String type = parameterMapNode.getStringAttribute("type");
      Class<?> parameterClass = resolveClass(type)NRN\NN^K[K]YZ[Ndy&jk:/oyn.9.(i,y`yf y/9o#ly/+9N[[]\HY]\]YH]]KXY[\HYYHψ]]]/k:/oy.^K[K]YZ[N

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP