亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美电影免费观看高清完整版在线观看 | 欧美一区二区黄色| 亚洲激情综合网| 欧美最新大片在线看| 亚洲精品久久久久久国产精华液| 91麻豆国产福利在线观看| 亚洲老司机在线| 欧美日本精品一区二区三区| 日本伊人午夜精品| 国产日产欧美一区| 一本大道久久a久久综合| 午夜精品一区二区三区电影天堂 | 亚洲综合色婷婷| 欧美狂野另类xxxxoooo| 毛片av一区二区三区| 26uuu另类欧美亚洲曰本| 精品一区二区久久| 成人欧美一区二区三区白人| 国产乱码精品一区二区三| 国产日韩av一区| 91视视频在线观看入口直接观看www| 亚洲影视资源网| 欧美一区二区三区四区高清| 国产精品自拍网站| 免费的国产精品| 久久亚洲一区二区三区明星换脸| 成人免费高清视频| 一区二区三区四区不卡视频 | 奇米精品一区二区三区在线观看 | 日本黄色一区二区| 久久精品国产精品亚洲红杏| 精品国一区二区三区| 日本高清不卡一区| 日韩精品高清不卡| 欧美国产一区二区| 在线观看免费一区| 国产成a人亚洲| 一区二区三区毛片| 欧美另类高清zo欧美| 国产一区二区三区蝌蚪| 亚洲欧洲一区二区三区| 欧美视频一区二区在线观看| 国产suv精品一区二区三区| 樱花草国产18久久久久| 在线综合视频播放| 粉嫩av一区二区三区| 热久久一区二区| 国产精品乱人伦中文| 久久午夜老司机| 色女孩综合影院| 不卡在线观看av| 热久久国产精品| 国产精品久久久久婷婷二区次| 欧美高清精品3d| 99国产精品久久久久| 国产一区二区中文字幕| 亚洲制服欧美中文字幕中文字幕| 亚洲国产精品t66y| 日韩写真欧美这视频| 丁香一区二区三区| 国产九九视频一区二区三区| 亚洲一区二区三区四区中文字幕| 国产夜色精品一区二区av| 欧美乱熟臀69xxxxxx| 欧美三级三级三级| 99精品热视频| 成人深夜视频在线观看| 久久福利资源站| 老色鬼精品视频在线观看播放| 亚洲精品免费在线观看| 中文字幕综合网| 国产欧美日韩视频一区二区 | 国产精品自拍网站| 欧美日韩电影在线播放| 色欧美日韩亚洲| 色综合久久综合中文综合网| 99热99精品| 国产露脸91国语对白| 国产成人在线看| 韩国女主播成人在线观看| 免费观看30秒视频久久| 日韩av成人高清| 久久精品99国产精品日本| 亚洲国产欧美另类丝袜| 日韩vs国产vs欧美| 日韩av中文在线观看| 免费三级欧美电影| 免费看日韩a级影片| 国产又黄又大久久| 国模冰冰炮一区二区| 国产成人午夜精品5599| 国产精品白丝av| 国产高清亚洲一区| 国产成人av电影在线| 99视频在线精品| 色综合天天综合狠狠| 欧美三日本三级三级在线播放| 91福利国产精品| 国产激情视频一区二区在线观看| 国产成人精品三级| eeuss影院一区二区三区| 91影视在线播放| 色悠久久久久综合欧美99| 欧美二区乱c少妇| 欧美一级搡bbbb搡bbbb| 国产视频一区二区在线| 国产日韩精品一区| 亚洲精品ww久久久久久p站| 亚洲综合免费观看高清完整版| 亚洲成人av在线电影| 日韩在线一二三区| 成人app软件下载大全免费| 91免费观看视频| 欧美大肚乱孕交hd孕妇| 国产日产亚洲精品系列| 亚洲一区二区三区视频在线播放 | 久久久亚洲精华液精华液精华液| 国产精品福利一区| 亚洲综合无码一区二区| 精一区二区三区| 99久久婷婷国产综合精品电影| 在线91免费看| 久久久亚洲国产美女国产盗摄 | 国产网站一区二区| 亚洲一区在线播放| 久久99国产精品久久99| 国产天堂亚洲国产碰碰| 亚洲综合在线视频| 国产成人精品影院| 欧美日韩卡一卡二| 亚洲欧美色一区| 日本不卡视频在线| 欧美三级在线播放| 国产三级一区二区| 免费不卡在线视频| 91小视频在线观看| 久久影音资源网| 亚洲成在线观看| 91蜜桃在线观看| 久久精品人人做人人综合| 精品国产91亚洲一区二区三区婷婷| 国产欧美一区二区精品性| 日本免费在线视频不卡一不卡二| 国产高清精品在线| 日韩一级免费观看| 中文字幕不卡在线观看| 国产一区二区影院| 在线观看国产日韩| 亚洲精品视频在线观看免费| 一区二区三区鲁丝不卡| 成人免费视频网站在线观看| 欧美综合色免费| 亚洲免费毛片网站| 久久99国产精品久久99果冻传媒| 欧美一区二区三区免费在线看| 久久免费的精品国产v∧| 激情小说亚洲一区| 欧美色大人视频| 亚洲va国产va欧美va观看| 国产成人在线色| 亚洲国产精品成人综合| 日韩精品电影在线观看| 欧美精品九九99久久| 日韩美女视频在线| 蜜臀久久99精品久久久久宅男| 久久99精品久久久久婷婷| 欧美高清视频一二三区| 亚洲综合色视频| 一本到高清视频免费精品| 亚洲欧美色综合| av中文一区二区三区| 亚洲人成影院在线观看| 成人美女在线观看| 中文字幕中文字幕一区| 国产成人综合网| 日韩美女精品在线| 成人激情av网| 亚洲综合色婷婷| 91成人在线免费观看| 亚洲成人自拍偷拍| 欧美亚洲另类激情小说| 日本不卡视频在线| 制服丝袜亚洲播放| 国内精品国产三级国产a久久| 欧美成人一区二区三区在线观看| 麻豆极品一区二区三区| 欧美大片一区二区| 亚洲大片免费看| 色婷婷久久综合| 午夜一区二区三区在线观看| 在线观看一区日韩| 亚洲一区二区免费视频| 欧美日韩久久久久久| 极品美女销魂一区二区三区免费 | 91久久一区二区| 日本亚洲视频在线| 欧美日韩高清不卡| 黑人巨大精品欧美一区| 欧美另类一区二区三区| 国产一区亚洲一区|