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

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

?? enhancedlazyresultloader.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.result.loader;

import com.ibatis.common.beans.ClassInfo;

import com.ibatis.sqlmap.engine.impl.ExtendedSqlMapClient;
import com.ibatis.sqlmap.engine.type.DomTypeMarker;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.InvocationHandler;

import java.lang.reflect.Method;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;

/**
 * Class to lazily load results into objects (uses CGLib to improve performance)
 */
public class EnhancedLazyResultLoader {

  private static final Class[] INTERFACES = new Class[]{List.class};
  private Object loader;


  /**
   * Constructor for an enhanced lazy list loader
   *
   * @param client - the client that is creating the lazy list
   * @param statementName - the statement to be used to build the list
   * @param parameterObject - the parameter object to be used to build the list
   * @param targetType - the type we are putting data into
   */
  public EnhancedLazyResultLoader(ExtendedSqlMapClient client, String statementName, Object parameterObject, Class targetType) {
    loader = new EnhancedLazyResultLoaderImpl(client, statementName, parameterObject, targetType);
  }

  /**
   * Loads the result
   *
   * @return the results - a list or object
   * 
   * @throws SQLException if there is a problem
   */
  public Object loadResult() throws SQLException {
    return ((EnhancedLazyResultLoaderImpl) loader).loadResult();
  }


  private static class EnhancedLazyResultLoaderImpl implements InvocationHandler {


    protected ExtendedSqlMapClient client;
    protected String statementName;
    protected Object parameterObject;
    protected Class targetType;

    protected boolean loaded;
    protected Object resultObject;

    /**
     * Constructor for an enhanced lazy list loader implementation
     *
     * @param client - the client that is creating the lazy list
     * @param statementName - the statement to be used to build the list
     * @param parameterObject - the parameter object to be used to build the list
     * @param targetType - the type we are putting data into
     */
    public EnhancedLazyResultLoaderImpl(ExtendedSqlMapClient client, String statementName, Object parameterObject, Class targetType) {
      this.client = client;
      this.statementName = statementName;
      this.parameterObject = parameterObject;
      this.targetType = targetType;
    }

    /**
     * Loads the result
     *
     * @return the results - a list or object
     * 
     * @throws SQLException if there is a problem
     */
    public Object loadResult() throws SQLException {
      if (DomTypeMarker.class.isAssignableFrom(targetType)) {
        return ResultLoader.getResult(client, statementName, parameterObject, targetType);
      } else if (Collection.class.isAssignableFrom(targetType)) {
        return Enhancer.create(Object.class, INTERFACES, this);
      } else if (targetType.isArray() || ClassInfo.isKnownType(targetType)) {
        return ResultLoader.getResult(client, statementName, parameterObject, targetType);
      } else {
        return Enhancer.create(targetType, this);
      }
    }

    public Object invoke(Object o, Method method, Object[] objects) throws Throwable {
      if ("finalize".hashCode() == method.getName().hashCode()
          && "finalize".equals(method.getName())) {
        return null;
      } else {
        loadObject();
        if (resultObject != null) {
          try {
            return method.invoke(resultObject, objects);
          } catch (Throwable t) {
            throw ClassInfo.unwrapThrowable(t);
          }
        } else {
          return null;
        }
      }
    }

    private synchronized void loadObject() {
      if (!loaded) {
        try {
          loaded = true;
          resultObject = ResultLoader.getResult(client, statementName, parameterObject, targetType);
        } catch (SQLException e) {
          throw new RuntimeException("Error lazy loading result. Cause: " + e, e);
        }
      }
    }
  }


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频一区二区免费| 亚洲同性gay激情无套| 欧美激情一区二区三区四区| 一区二区三区91| 国产中文字幕精品| 91高清视频免费看| 国产精品三级视频| 国产一区二区影院| 欧美精品粉嫩高潮一区二区| 国产精品成人一区二区艾草| 精品一区二区成人精品| 欧美三区在线视频| 中文字幕日韩一区二区| 国产精品综合一区二区| 91精品在线一区二区| 亚洲精品精品亚洲| 成人激情图片网| 国产亚洲成aⅴ人片在线观看| 午夜国产精品影院在线观看| 色av成人天堂桃色av| 欧美激情中文字幕一区二区| 国产高清无密码一区二区三区| 欧美一区二区三区不卡| 视频一区二区三区中文字幕| 欧亚洲嫩模精品一区三区| 亚洲欧洲另类国产综合| 国产91色综合久久免费分享| 久久这里只有精品视频网| 日本在线不卡一区| 欧美一二三四区在线| 蜜桃视频免费观看一区| 欧美一区二区三区的| 蜜臀91精品一区二区三区| 日韩三级免费观看| 久久狠狠亚洲综合| 精品国产一区二区三区av性色| 日韩高清在线一区| 欧美一区二区黄| 日韩精品一二区| 精品三级在线观看| 国产一区二区三区免费观看| 国产欧美日韩三级| 成人精品电影在线观看| 成人免费在线视频观看| 欧洲精品在线观看| 日韩av一区二区三区四区| 日韩欧美国产麻豆| 国产综合久久久久影院| 中文字幕国产一区二区| 91同城在线观看| 亚洲国产aⅴ天堂久久| 777午夜精品视频在线播放| 免费观看30秒视频久久| 国产女主播一区| 色狠狠色狠狠综合| 丝袜诱惑亚洲看片| 久久午夜电影网| 99精品国产视频| 亚洲成人一区二区在线观看| 精品免费国产二区三区| 高清日韩电视剧大全免费| 亚洲欧美视频在线观看视频| 欧美精品在线观看播放| 激情图区综合网| 亚洲精品美国一| www国产亚洲精品久久麻豆| 99久久精品国产一区二区三区| 亚洲一区二区三区四区的| 欧美va亚洲va香蕉在线| 成人看片黄a免费看在线| 午夜精品一区二区三区三上悠亚| 精品国产乱码久久久久久久久 | 久久亚洲二区三区| 99这里只有精品| 麻豆专区一区二区三区四区五区| 欧美激情一二三区| 日韩午夜三级在线| 97精品久久久久中文字幕| 久久精品国产精品亚洲精品| 亚洲欧洲日韩在线| ww亚洲ww在线观看国产| 精品视频1区2区| 丁香激情综合国产| 久久99精品久久久| 亚洲国产精品久久艾草纯爱| 国产精品乱人伦中文| 欧美电影精品一区二区| 欧美日韩亚洲综合在线 | 日韩av一级片| 亚洲激情图片小说视频| 久久精品人人爽人人爽| 欧美一区二区三区四区五区 | 亚洲午夜精品在线| 国产精品久久久久久久裸模| 欧美成人猛片aaaaaaa| 欧美午夜影院一区| 91免费视频大全| 成人av网站免费观看| 国产在线精品一区二区| 日韩二区三区四区| 亚洲一区二区三区小说| 亚洲人成在线播放网站岛国| 亚洲国产精品精华液2区45| 日韩欧美电影一区| 日韩欧美的一区二区| 日韩视频一区二区三区在线播放| 欧美理论片在线| 欧美色综合久久| 欧美亚洲国产一区在线观看网站 | 亚洲视频一区二区在线| 国产精品麻豆一区二区| 亚洲国产精品黑人久久久| 国产视频一区不卡| 国产网站一区二区| 久久久久久久久免费| 国产拍揄自揄精品视频麻豆| 中文字幕精品一区| 亚洲国产激情av| 中文字幕巨乱亚洲| 亚洲欧美日韩在线| 亚洲一区二区三区在线看| 亚洲成人你懂的| 久久精品免费看| 国产精品香蕉一区二区三区| 国产精华液一区二区三区| 国产成人精品一区二区三区四区 | 久久爱www久久做| 国产综合色视频| 不卡免费追剧大全电视剧网站| 大桥未久av一区二区三区中文| 99久久亚洲一区二区三区青草| 93久久精品日日躁夜夜躁欧美| 91亚洲精品久久久蜜桃| 欧美日韩亚洲综合一区| 日韩免费看的电影| 国产女主播一区| 亚洲一区二三区| 久久99久久精品欧美| zzijzzij亚洲日本少妇熟睡| 欧美日韩激情一区二区三区| 精品久久久久久久久久久院品网| 久久久欧美精品sm网站| 亚洲人123区| 蜜臀久久99精品久久久久久9| 国产精品99久久久久久似苏梦涵 | 欧美成人猛片aaaaaaa| 欧美极品xxx| 亚洲嫩草精品久久| 蜜臀va亚洲va欧美va天堂 | 国产乱码精品一品二品| 99久久久久久99| 日韩午夜小视频| 亚洲欧美aⅴ...| 久久9热精品视频| 91一区在线观看| 欧美成人vps| 亚洲主播在线观看| 国产成人激情av| 欧美另类videos死尸| 国产精品久久精品日日| 午夜欧美在线一二页| 不卡一区中文字幕| 日韩欧美一区电影| 亚洲一区在线观看免费观看电影高清 | 久久99精品久久久久久国产越南 | 无码av免费一区二区三区试看| 国产成人精品免费看| 日韩三级视频中文字幕| 樱桃视频在线观看一区| 国产精品99久久久久久似苏梦涵| 欧美午夜不卡在线观看免费| 中文字幕不卡的av| 久久疯狂做爰流白浆xx| 欧美三级日韩三级国产三级| 国产精品久久久久毛片软件| 黄色成人免费在线| 欧美电影影音先锋| 亚洲午夜羞羞片| 色综合天天综合| 国产视频一区在线播放| 精品亚洲免费视频| 欧美一区二区在线不卡| 亚洲第一搞黄网站| 色婷婷综合久久久久中文一区二区| 久久精品人人做人人爽人人| 久久99精品国产麻豆婷婷 | 中文字幕亚洲不卡| 国产精品一区二区视频| 日韩视频在线你懂得| 日韩中文字幕1| 欧美二区乱c少妇| 日本91福利区| 日韩欧美国产1| 激情深爱一区二区| 久久女同性恋中文字幕| 国产一区二区精品久久| 久久久久国产精品人| 国产a级毛片一区| 国产精品国产三级国产aⅴ中文| 国产999精品久久久久久绿帽|