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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? generalstatement.java

?? 本套系統采用了業界當前最為流行的beanAction組件
?? JAVA
字號:
/*
 *  Copyright 2004 Clinton Begin
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package com.ibatis.sqlmap.engine.mapping.statement;

import com.ibatis.common.jdbc.exception.NestedSQLException;
import com.ibatis.common.io.ReaderInputStream;

import com.ibatis.sqlmap.client.event.RowHandler;
import com.ibatis.sqlmap.engine.execution.SqlExecutor;
import com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap;
import com.ibatis.sqlmap.engine.mapping.result.ResultMap;
import com.ibatis.sqlmap.engine.mapping.sql.Sql;
import com.ibatis.sqlmap.engine.scope.ErrorContext;
import com.ibatis.sqlmap.engine.scope.RequestScope;
import com.ibatis.sqlmap.engine.transaction.Transaction;
import com.ibatis.sqlmap.engine.transaction.TransactionException;
import com.ibatis.sqlmap.engine.type.*;
import org.w3c.dom.Document;

import javax.xml.parsers.*;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.io.*;

public class GeneralStatement extends BaseStatement {

  public StatementType getStatementType() {
    return StatementType.UNKNOWN;
  }

  public int executeUpdate(RequestScope request, Transaction trans, Object parameterObject)
      throws SQLException {
    ErrorContext errorContext = request.getErrorContext();
    errorContext.setActivity("preparing the mapped statement for execution");
    errorContext.setObjectId(this.getId());
    errorContext.setResource(this.getResource());

    request.getSession().setCommitRequired(true);

    try {
      parameterObject = validateParameter(parameterObject);

      Sql sql = getSql();

      errorContext.setMoreInfo("Check the parameter map.");
      ParameterMap parameterMap = sql.getParameterMap(request, parameterObject);

      errorContext.setMoreInfo("Check the result map.");
      ResultMap resultMap = sql.getResultMap(request, parameterObject);

      request.setResultMap(resultMap);
      request.setParameterMap(parameterMap);

      int rows = 0;

      errorContext.setMoreInfo("Check the parameter map.");
      Object[] parameters = parameterMap.getParameterObjectValues(request, parameterObject);

      errorContext.setMoreInfo("Check the SQL statement.");
      String sqlString = sql.getSql(request, parameterObject);

      errorContext.setActivity("executing mapped statement");
      errorContext.setMoreInfo("Check the statement or the result map.");
      rows = sqlExecuteUpdate(request, trans.getConnection(), sqlString, parameters);

      errorContext.setMoreInfo("Check the output parameters.");
      if (parameterObject != null) {
        postProcessParameterObject(request, parameterObject, parameters);
      }

      errorContext.reset();
      sql.cleanup(request);
      notifyListeners();
      return rows;
    } catch (SQLException e) {
      errorContext.setCause(e);
      throw new NestedSQLException(errorContext.toString(), e.getSQLState(), e.getErrorCode(), e);
    } catch (Exception e) {
      errorContext.setCause(e);
      throw new NestedSQLException(errorContext.toString(), e);
    }
  }

  public Object executeQueryForObject(RequestScope request, Transaction trans, Object parameterObject, Object resultObject)
      throws SQLException {
    try {
      Object object = null;

      DefaultRowHandler rowHandler = new DefaultRowHandler();
      executeQueryWithCallback(request, trans.getConnection(), parameterObject, resultObject, rowHandler, SqlExecutor.NO_SKIPPED_RESULTS, SqlExecutor.NO_MAXIMUM_RESULTS);
      List list = rowHandler.getList();

      if (list.size() > 1) {
        throw new SQLException("Error: executeQueryForObject returned too many results.");
      } else if (list.size() > 0) {
        object = list.get(0);
      }

      return object;
    } catch (TransactionException e) {
      throw new NestedSQLException("Error getting Connection from Transaction.  Cause: " + e, e);
    }
  }

  public List executeQueryForList(RequestScope request, Transaction trans, Object parameterObject, int skipResults, int maxResults)
      throws SQLException {
    try {
      DefaultRowHandler rowHandler = new DefaultRowHandler();
      executeQueryWithCallback(request, trans.getConnection(), parameterObject, null, rowHandler, skipResults, maxResults);
      return rowHandler.getList();
    } catch (TransactionException e) {
      throw new NestedSQLException("Error getting Connection from Transaction.  Cause: " + e, e);
    }
  }

  public void executeQueryWithRowHandler(RequestScope request, Transaction trans, Object parameterObject, RowHandler rowHandler)
      throws SQLException {
    try {
      executeQueryWithCallback(request, trans.getConnection(), parameterObject, null, rowHandler, SqlExecutor.NO_SKIPPED_RESULTS, SqlExecutor.NO_MAXIMUM_RESULTS);
    } catch (TransactionException e) {
      throw new NestedSQLException("Error getting Connection from Transaction.  Cause: " + e, e);
    }
  }

  //
  //  PROTECTED METHODS
  //

  protected void executeQueryWithCallback(RequestScope request, Connection conn, Object parameterObject, Object resultObject, RowHandler rowHandler, int skipResults, int maxResults)
      throws SQLException {
    ErrorContext errorContext = request.getErrorContext();
    errorContext.setActivity("preparing the mapped statement for execution");
    errorContext.setObjectId(this.getId());
    errorContext.setResource(this.getResource());

    try {
      parameterObject = validateParameter(parameterObject);

      Sql sql = getSql();

      errorContext.setMoreInfo("Check the parameter map.");
      ParameterMap parameterMap = sql.getParameterMap(request, parameterObject);

      errorContext.setMoreInfo("Check the result map.");
      ResultMap resultMap = sql.getResultMap(request, parameterObject);

      request.setResultMap(resultMap);
      request.setParameterMap(parameterMap);

      errorContext.setMoreInfo("Check the parameter map.");
      Object[] parameters = parameterMap.getParameterObjectValues(request, parameterObject);

      errorContext.setMoreInfo("Check the SQL statement.");
      String sqlString = sql.getSql(request, parameterObject);

      errorContext.setActivity("executing mapped statement");
      errorContext.setMoreInfo("Check the SQL statement or the result map.");
      RowHandlerCallback callback = new RowHandlerCallback(resultMap, resultObject, rowHandler);
      sqlExecuteQuery(request, conn, sqlString, parameters, skipResults, maxResults, callback);

      errorContext.setMoreInfo("Check the output parameters.");
      if (parameterObject != null) {
        postProcessParameterObject(request, parameterObject, parameters);
      }

      errorContext.reset();
      sql.cleanup(request);
      notifyListeners();
    } catch (SQLException e) {
      errorContext.setCause(e);
      throw new NestedSQLException(errorContext.toString(), e.getSQLState(), e.getErrorCode(), e);
    } catch (Exception e) {
      errorContext.setCause(e);
      throw new NestedSQLException(errorContext.toString(), e);
    }
  }

  protected void postProcessParameterObject(RequestScope request, Object parameterObject, Object[] parameters) {
  }

  protected int sqlExecuteUpdate(RequestScope request, Connection conn, String sqlString, Object[] parameters) throws SQLException {
    if (request.getSession().isInBatch()) {
      getSqlExecutor().addBatch(request, conn, sqlString, parameters);
      return 0;
    } else {
      return getSqlExecutor().executeUpdate(request, conn, sqlString, parameters);
    }
  }

  protected void sqlExecuteQuery(RequestScope request, Connection conn, String sqlString, Object[] parameters, int skipResults, int maxResults, RowHandlerCallback callback) throws SQLException {
    getSqlExecutor().executeQuery(request, conn, sqlString, parameters, skipResults, maxResults, callback);
  }

  protected Object validateParameter(Object param)
      throws SQLException {
    Object newParam = param;
    Class parameterClass = getParameterClass();
    if (newParam != null && parameterClass != null) {
      if (DomTypeMarker.class.isAssignableFrom(parameterClass)) {
        if (XmlTypeMarker.class.isAssignableFrom(parameterClass)) {
          if (!(newParam instanceof String)
              && !(newParam instanceof Document)) {
            throw new SQLException("Invalid parameter object type.  Expected '" + String.class.getName() + "' or '" + Document.class.getName() + "' but found '" + newParam.getClass().getName() + "'.");
          }
          if (!(newParam instanceof Document)) {
            newParam = stringToDocument ((String)newParam);
          }
        } else {
          if (!Document.class.isAssignableFrom(newParam.getClass())) {
            throw new SQLException("Invalid parameter object type.  Expected '" + Document.class.getName() + "' but found '" + newParam.getClass().getName() + "'.");
          }
        }
      } else {
        if (!parameterClass.isAssignableFrom(newParam.getClass())) {
          throw new SQLException("Invalid parameter object type.  Expected '" + parameterClass.getName() + "' but found '" + newParam.getClass().getName() + "'.");
        }
      }
    }
    return newParam;
  }

  private Document stringToDocument (String s) {
    try {
      DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
      DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
      return documentBuilder.parse(new ReaderInputStream(new StringReader(s)));
    } catch (Exception e) {
      throw new RuntimeException("Error occurred.  Cause: " + e, e);
    }
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区免费电影| 九一久久久久久| 欧美日韩视频专区在线播放| 亚洲人成精品久久久久久| caoporm超碰国产精品| 国产精品女人毛片| 99热国产精品| 亚洲高清视频的网址| 欧美伦理电影网| 青青草伊人久久| 久久婷婷国产综合精品青草| 国模套图日韩精品一区二区| 国产日韩在线不卡| 99精品国产99久久久久久白柏| 成人免费一区二区三区在线观看| 91美女片黄在线观看91美女| 午夜精品久久久久久久99樱桃| 91精品国产综合久久久久久久 | 欧美调教femdomvk| 青娱乐精品视频| 国产欧美视频一区二区| 色综合天天视频在线观看| 无吗不卡中文字幕| 国产欧美一区二区在线| 一本久久综合亚洲鲁鲁五月天 | 国产成人精品免费看| 国产精品不卡视频| 欧美日韩夫妻久久| 国产大陆精品国产| 亚洲激情五月婷婷| 精品国免费一区二区三区| 91一区二区三区在线播放| 日本午夜精品视频在线观看| 国产精品久久久久桃色tv| 欧美无人高清视频在线观看| 国产综合久久久久久鬼色| 亚洲最大的成人av| 久久久精品tv| 欧美日韩精品三区| 东方欧美亚洲色图在线| 日韩福利电影在线观看| 国产精品国产三级国产aⅴ中文 | 99国产精品国产精品久久| 日精品一区二区| 日韩伦理免费电影| 久久欧美中文字幕| 欧美精品亚洲一区二区在线播放| 粉嫩av一区二区三区| 日产国产欧美视频一区精品| 中文字幕亚洲欧美在线不卡| 日韩精品一区二区在线| 欧美性生活影院| av欧美精品.com| 国产精品一卡二| 男人的天堂久久精品| 亚洲黄色小视频| 久久99精品久久只有精品| 亚洲狠狠丁香婷婷综合久久久| 久久久www成人免费无遮挡大片| 91精品国产综合久久精品app | 欧美在线观看一区二区| 99天天综合性| 成人一级片网址| 久久aⅴ国产欧美74aaa| 日韩精品一级中文字幕精品视频免费观看 | 色一区在线观看| 成人av电影在线| 国产成人av网站| 国产乱码精品一区二区三| 精品一区二区三区在线视频| 视频一区在线视频| 日本不卡一区二区| 日韩专区一卡二卡| 日本麻豆一区二区三区视频| 天堂久久一区二区三区| 亚洲综合精品久久| 亚洲一区二区三区在线看| 亚洲欧美日本在线| 亚洲精品成人在线| 亚洲综合激情另类小说区| 亚洲精品成人悠悠色影视| 一区二区三区中文在线| 一区二区三区在线视频观看58| 亚洲男帅同性gay1069| 亚洲精品中文字幕在线观看| 亚洲另类春色国产| 亚洲成av人在线观看| 亚洲va欧美va天堂v国产综合| 污片在线观看一区二区| 日韩和欧美一区二区三区| 另类欧美日韩国产在线| 麻豆专区一区二区三区四区五区| 蜜桃传媒麻豆第一区在线观看| 久久国内精品视频| 国产精品亚洲人在线观看| 成人黄色av电影| 色综合久久久久久久久| 678五月天丁香亚洲综合网| 日韩欧美一二区| 欧美国产精品v| 亚洲黄色片在线观看| 青青草原综合久久大伊人精品优势| 激情欧美日韩一区二区| www.欧美日韩| 欧美日韩成人综合在线一区二区| 日韩欧美国产一区二区在线播放| 亚洲精品一区二区三区99| 国产精品国产三级国产| 亚洲国产va精品久久久不卡综合| 麻豆成人综合网| 成人三级伦理片| 欧美日韩一区二区三区在线看| 日韩欧美不卡在线观看视频| 国产精品成人在线观看 | 亚洲aⅴ怡春院| 国产精品资源网| 在线免费观看视频一区| 日韩三级精品电影久久久| 国产精品毛片久久久久久| 亚洲电影在线免费观看| 国产精品亚洲人在线观看| 欧美午夜宅男影院| 久久午夜免费电影| 午夜精品福利一区二区三区av| 国产福利一区二区三区视频在线| 色天使色偷偷av一区二区| 精品日产卡一卡二卡麻豆| 亚洲女与黑人做爰| 久久不见久久见免费视频7| 91麻豆免费看片| 久久精品在这里| 亚洲成av人影院| 91美女视频网站| 久久精品网站免费观看| 日产精品久久久久久久性色| 99九九99九九九视频精品| 欧美videos大乳护士334| 亚洲成精国产精品女| 成人av免费网站| 久久婷婷色综合| 免费成人美女在线观看| 色综合久久久久综合99| 国产精品入口麻豆原神| 老鸭窝一区二区久久精品| 欧美日韩中文一区| 中文字幕一区二区三区四区不卡| 美女视频黄 久久| 欧美日韩一级二级三级| 日韩一区中文字幕| 成人精品国产福利| 久久日一线二线三线suv| 免费三级欧美电影| 欧美性一二三区| 一区二区三区在线观看国产| 成人国产电影网| 国产精品美女久久久久久| 国产乱人伦偷精品视频免下载| 日韩三级视频在线看| 日韩在线卡一卡二| 欧美丰满一区二区免费视频| 亚洲中国最大av网站| 91在线观看下载| 国产精品福利一区二区三区| 成人性生交大合| 国产日韩欧美精品综合| 国产**成人网毛片九色| 久久久精品影视| 国产精品亚洲第一| 亚洲国产精品国自产拍av| 丁香网亚洲国际| 国产精品美女久久福利网站| 成人激情黄色小说| 中文字幕亚洲电影| 色综合久久综合网97色综合| 亚洲日本一区二区| 欧美日韩在线播放一区| 婷婷久久综合九色综合伊人色| 欧美男男青年gay1069videost| 午夜伦理一区二区| 日韩一区二区在线观看视频播放 | 国产主播一区二区三区| 久久影视一区二区| 成人久久视频在线观看| 亚洲免费观看高清完整版在线观看熊| 99精品欧美一区二区三区小说| 亚洲免费三区一区二区| 欧美日本不卡视频| 精品亚洲国产成人av制服丝袜| 久久久久青草大香线综合精品| 国产成人在线视频网站| 亚洲欧美色图小说| 欧美老年两性高潮| 精品一区二区三区免费视频| 国产午夜久久久久| 99re这里只有精品6| 香蕉乱码成人久久天堂爱免费| 欧美一区二区三区在线观看视频 | 国产99久久久国产精品潘金| 国产精品成人免费| 欧美日精品一区视频|