亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sqlstatementparser.java

?? 本套系統(tǒng)采用了業(yè)界當(dāng)前最為流行的beanAction組件
?? JAVA
?? 第 1 頁 / 共 2 頁
字號(hào):
    for (int i = 0; i < children.getLength(); i++) {
      Node child = children.item(i);
      String nodeName = child.getNodeName();
      if (child.getNodeType() == Node.CDATA_SECTION_NODE
          || child.getNodeType() == Node.TEXT_NODE) {

        String data = ((CharacterData) child).getData();
        data = NodeletUtils.parsePropertyTokens(data, vars.properties);

        SqlText sqlText;

        if (postParseRequired) {
          sqlText = new SqlText();
          sqlText.setPostParseRequired(postParseRequired);
          sqlText.setText(data);
        } else {
          sqlText = PARAM_PARSER.parseInlineParameterMap(vars.client.getDelegate().getTypeHandlerFactory(), data, null);
          sqlText.setPostParseRequired(postParseRequired);
        }

        dynamic.addChild(sqlText);

        sqlBuffer.append(data);
      } else if ("include".equals(nodeName)) {
        Properties attributes = NodeletUtils.parseAttributes(child, vars.properties);
        String refid = (String) attributes.get("refid");
        Node includeNode = (Node) vars.sqlIncludes.get(refid);
        if (includeNode == null) {
          String nsrefid = applyNamespace(refid);
          includeNode = (Node) vars.sqlIncludes.get(nsrefid);
          if (includeNode == null) {
            throw new RuntimeException("Could not find SQL statement to include with refid '" + refid + "'");
          }
        }
        isDynamic = parseDynamicTags(includeNode, dynamic, sqlBuffer, isDynamic, false);
      } else {
        vars.errorCtx.setMoreInfo("Check the dynamic tags.");

        SqlTagHandler handler = SqlTagHandlerFactory.getSqlTagHandler(nodeName);
        if (handler != null) {
          isDynamic = true;

          SqlTag tag = new SqlTag();
          tag.setName(nodeName);
          tag.setHandler(handler);

          Properties attributes = NodeletUtils.parseAttributes(child, vars.properties);

          tag.setPrependAttr(attributes.getProperty("prepend"));
          tag.setPropertyAttr(attributes.getProperty("property"));
          tag.setRemoveFirstPrepend(attributes.getProperty("removeFirstPrepend"));

          tag.setOpenAttr(attributes.getProperty("open"));
          tag.setCloseAttr(attributes.getProperty("close"));

          tag.setComparePropertyAttr(attributes.getProperty("compareProperty"));
          tag.setCompareValueAttr(attributes.getProperty("compareValue"));
          tag.setConjunctionAttr(attributes.getProperty("conjunction"));

          // an iterate ancestor requires a post parse

          if(dynamic instanceof SqlTag) {
            SqlTag parentSqlTag = (SqlTag)dynamic;
            if(parentSqlTag.isPostParseRequired() ||
               tag.getHandler() instanceof IterateTagHandler) {
              tag.setPostParseRequired(true);
            }
          } else if (dynamic instanceof DynamicSql) {
              if(tag.getHandler() instanceof IterateTagHandler) {
                tag.setPostParseRequired(true);
              }
          }

          dynamic.addChild(tag);

          if (child.hasChildNodes()) {
            isDynamic = parseDynamicTags(child, tag, sqlBuffer, isDynamic, tag.isPostParseRequired());
          }
        }
      }
    }
    vars.errorCtx.setMoreInfo(null);
    return isDynamic;
  }

  private SelectKeyStatement findAndParseSelectKeyStatement(Node n, GeneralStatement insertStatement) {
    vars.errorCtx.setActivity("parsing select key tags");

    SelectKeyStatement selectKeyStatement = null;

    boolean foundTextFirst = false;
    boolean hasType = false;

    NodeList children = n.getChildNodes();
    for (int i = 0; i < children.getLength(); i++) {
      Node child = children.item(i);
      if (child.getNodeType() == Node.CDATA_SECTION_NODE
          || child.getNodeType() == Node.TEXT_NODE) {
        String data = ((CharacterData) child).getData();
        if (data.trim().length() > 0) {
          foundTextFirst = true;
        }
      } else if (child.getNodeType() == Node.ELEMENT_NODE
          && "selectKey".equals(child.getNodeName())) {
        selectKeyStatement = new SelectKeyStatement();
        hasType = parseSelectKey(child, insertStatement, selectKeyStatement);
        break;
      }
    }
    if (selectKeyStatement != null && !hasType) {
      selectKeyStatement.setAfter(foundTextFirst);
    }
    vars.errorCtx.setMoreInfo(null);
    return selectKeyStatement;
  }

  /**
   * 
   * @param node
   * @param insertStatement
   * @param selectKeyStatement
   * @return true is the type (pre or post) was set from the configuration
   *   false if the type (pre or post) should be inferred from the position
   *   of the element in the text (the legacy behavior)
   */
  private boolean parseSelectKey(Node node, GeneralStatement insertStatement, SelectKeyStatement selectKeyStatement) {
    vars.errorCtx.setActivity("parsing a select key");

    // get attributes
    Properties attributes = NodeletUtils.parseAttributes(node, vars.properties);
    String keyPropName = attributes.getProperty("keyProperty");
    String resultClassName = attributes.getProperty("resultClass");
    resultClassName = vars.typeHandlerFactory.resolveAlias(resultClassName);
    Class resultClass = null;

    // get parameter and result maps
    selectKeyStatement.setSqlMapClient(vars.client);

    selectKeyStatement.setId(insertStatement.getId() + "-SelectKey");
    selectKeyStatement.setResource(vars.errorCtx.getResource());
    selectKeyStatement.setKeyProperty(keyPropName);

    // process the type (pre or post) attribute
    boolean hasType;
    String type = attributes.getProperty("type");
    if (type == null) {
      hasType = false;
    } else {
      hasType = true;
      selectKeyStatement.setAfter("post".equals(type));
    }

    try {
      if (resultClassName != null) {
        vars.errorCtx.setMoreInfo("Check the select key result class.");
        resultClass = Resources.classForName(resultClassName);
      } else {
        Class parameterClass = insertStatement.getParameterClass();
        if (keyPropName != null && parameterClass != null) {
          resultClass = PROBE.getPropertyTypeForSetter(parameterClass, selectKeyStatement.getKeyProperty());
        }
      }
    } catch (ClassNotFoundException e) {
      throw new SqlMapException("Error.  Could not set result class.  Cause: " + e, e);
    }

    if (resultClass == null) {
      resultClass = Object.class;
    }

    // process SQL statement, including inline parameter maps
    vars.errorCtx.setMoreInfo("Check the select key SQL statement.");
    processSqlStatement(node, selectKeyStatement);

    BasicResultMap resultMap;
    resultMap = new AutoResultMap(vars.client.getDelegate(), false);
    resultMap.setId(selectKeyStatement.getId() + "-AutoResultMap");
    resultMap.setResultClass(resultClass);
    resultMap.setResource(selectKeyStatement.getResource());
    selectKeyStatement.setResultMap(resultMap);

    vars.errorCtx.setMoreInfo(null);
    return hasType;
  }

  private void applyInlineParameterMap(GeneralStatement statement, String sqlStatement) {
    String newSql = sqlStatement;

    vars.errorCtx.setActivity("building an inline parameter map");

    ParameterMap parameterMap = statement.getParameterMap();

    vars.errorCtx.setMoreInfo("Check the inline parameters.");
    if (parameterMap == null) {

      BasicParameterMap map;
      map = new BasicParameterMap(vars.client.getDelegate());

      map.setId(statement.getId() + "-InlineParameterMap");
      map.setParameterClass(statement.getParameterClass());
      map.setResource(statement.getResource());
      statement.setParameterMap(map);

      SqlText sqlText = PARAM_PARSER.parseInlineParameterMap(vars.client.getDelegate().getTypeHandlerFactory(), newSql, statement.getParameterClass());
      newSql = sqlText.getText();
      List mappingList = Arrays.asList(sqlText.getParameterMappings());

      map.setParameterMappingList(mappingList);

    }

    Sql sql = null;
    if (SimpleDynamicSql.isSimpleDynamicSql(newSql)) {
      sql = new SimpleDynamicSql(vars.client.getDelegate(), newSql);
    } else {
      sql = new StaticSql(newSql);
    }
    statement.setSql(sql);

  }

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影在线免费| 亚洲欧洲日韩一区二区三区| 国产成人精品一区二区三区四区| 亚洲丝袜美腿综合| 日韩欧美三级在线| 91久久香蕉国产日韩欧美9色| 精品一区二区国语对白| 亚洲另类春色国产| 久久老女人爱爱| 欧美午夜不卡视频| 国产成人av一区二区三区在线| 亚洲国产精品久久不卡毛片| 国产午夜三级一区二区三| 欧美另类变人与禽xxxxx| 成人国产亚洲欧美成人综合网| 日韩黄色在线观看| 一区二区三区日韩精品| 日本一区二区三区在线不卡| 4hu四虎永久在线影院成人| 99热国产精品| 国产乱码精品1区2区3区| 日本中文一区二区三区| 亚洲在线观看免费| 中文字幕亚洲不卡| 国产婷婷色一区二区三区在线| 欧美精品久久99| 在线免费观看日韩欧美| 成人午夜激情影院| 国产乱码精品一品二品| 久久精品国产久精国产爱| 性久久久久久久久久久久| 国产精品国产三级国产普通话99| 久久久久久综合| 精品国产3级a| 日韩欧美一区二区久久婷婷| 欧美精品日韩一区| 欧美色爱综合网| 91黄视频在线观看| 色妞www精品视频| 99re热这里只有精品免费视频| 成人综合在线网站| 国产凹凸在线观看一区二区| 国模一区二区三区白浆| 麻豆国产精品一区二区三区| 奇米影视在线99精品| 日本一区中文字幕| 日本特黄久久久高潮| 日本不卡中文字幕| 日韩国产精品久久久| 日本亚洲免费观看| 久久国产乱子精品免费女| 免费一级欧美片在线观看| 欧美aa在线视频| 开心九九激情九九欧美日韩精美视频电影 | 久久午夜色播影院免费高清| 日韩一区二区在线免费观看| 日韩精品专区在线影院观看| 久久色.com| 中文字幕国产一区| 日韩理论片一区二区| 亚洲国产aⅴ天堂久久| 视频一区二区国产| 精东粉嫩av免费一区二区三区| 国产精品一区二区在线观看不卡| 成人一级视频在线观看| 91国偷自产一区二区开放时间 | 亚洲国产精品自拍| 首页国产丝袜综合| 亚洲色图制服丝袜| 一区二区三区在线视频免费| 五月天丁香久久| 美腿丝袜亚洲一区| 国产老肥熟一区二区三区| 国产91精品一区二区麻豆网站| 国产69精品一区二区亚洲孕妇| 成人一区在线看| 97国产精品videossex| 91精品国产色综合久久不卡电影| 欧美一区二区视频在线观看2022| 欧美一区二区视频在线观看2020 | 欧美一区二区三区喷汁尤物| 日韩欧美一二区| 国产日韩欧美综合一区| 国产欧美日韩三级| 亚洲欧美激情一区二区| 五月婷婷久久丁香| 国产麻豆精品95视频| 99久久精品免费看国产| 91麻豆精品91久久久久同性| 久久久精品国产免大香伊| 成人欧美一区二区三区在线播放| 亚洲网友自拍偷拍| 秋霞av亚洲一区二区三| 成人性生交大片免费看中文网站| 在线视频一区二区三区| 日韩视频免费观看高清在线视频| 久久久精品天堂| 一区二区三区精品| 国产综合一区二区| 色婷婷综合中文久久一本| 欧美一区二区免费视频| 国产精品久久久久久亚洲毛片| 亚洲国产精品久久久久秋霞影院 | 91丨九色丨蝌蚪富婆spa| 欧美日韩视频不卡| 国产视频一区二区三区在线观看 | 激情久久久久久久久久久久久久久久| 国产成a人亚洲精品| 精品视频在线免费观看| 久久久精品中文字幕麻豆发布| 夜夜嗨av一区二区三区网页| 久久精工是国产品牌吗| 成人午夜视频网站| 久久婷婷综合激情| 亚洲一区二区四区蜜桃| 国产一区不卡视频| 欧美日韩小视频| 国产精品成人一区二区三区夜夜夜| 天堂影院一区二区| 波多野结衣亚洲| 精品久久久久久久久久久久包黑料 | 综合激情网...| 美女视频网站久久| 国产美女精品在线| 精品国产乱码久久久久久久| 一级做a爱片久久| 成人午夜精品一区二区三区| 欧美成人激情免费网| 亚洲国产精品久久久久秋霞影院 | 亚洲午夜久久久久久久久久久| 国产最新精品免费| 欧美一区二区啪啪| 亚洲bt欧美bt精品| 日本高清成人免费播放| 日本一区二区三区dvd视频在线| 日本中文字幕一区二区有限公司| 在线免费观看成人短视频| 亚洲国产精品激情在线观看| 视频精品一区二区| 555夜色666亚洲国产免| 亚洲一区二区在线观看视频| 成人a级免费电影| 久久亚洲精品国产精品紫薇| 日韩二区三区四区| 欧美精品亚洲一区二区在线播放| 久久精品亚洲国产奇米99| 亚洲电影第三页| 91在线你懂得| 亚洲精选免费视频| 色综合中文字幕国产 | caoporn国产一区二区| 中文字幕欧美激情| 国产精品一卡二| 久久久亚洲综合| 国产精品一区专区| 久久精品网站免费观看| 激情文学综合网| 国产精品九色蝌蚪自拍| av不卡免费在线观看| 国产精品成人免费精品自在线观看| 成人免费视频一区二区| 亚洲国产激情av| av在线这里只有精品| 亚洲少妇30p| 91麻豆精品国产91久久久久久久久 | 久88久久88久久久| 欧美xxxxx裸体时装秀| 久久精品国产成人一区二区三区 | 99免费精品视频| 中日韩免费视频中文字幕| 日本成人在线不卡视频| 国产网站一区二区| caoporn国产一区二区| 亚洲区小说区图片区qvod| 欧美中文字幕一区二区三区| 亚洲一区二区黄色| 91精品久久久久久久久99蜜臂| 久久99热99| 国产女人18水真多18精品一级做| 国产精品正在播放| 亚洲高清中文字幕| 日韩精品中文字幕在线一区| 国产精品 欧美精品| 亚洲天堂中文字幕| 在线电影院国产精品| 麻豆精品新av中文字幕| 国产婷婷色一区二区三区| 国产高清精品在线| 自拍偷拍国产亚洲| 欧美三级日本三级少妇99| 奇米影视一区二区三区| 国产日产欧美一区| 国产69精品久久99不卡| 日韩电影在线免费观看| 久久精品欧美一区二区三区麻豆| 91丝袜美腿高跟国产极品老师 | 日韩免费高清av| av在线播放一区二区三区| 日韩精品久久久久久| 国产精品每日更新在线播放网址|