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

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

?? dataset.java

?? 大名鼎鼎的java動態腳本語言。已經通過了sun的認證
?? JAVA
字號:
/* $Id: DataSet.java,v 1.8 2004/05/15 04:53:01 bran Exp $ Copyright 2003 (C) James Strachan and Bob Mcwhirter. All Rights Reserved. Redistribution and use of this software and associated documentation ("Software"), with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain copyright    statements and notices.  Redistributions must also contain a    copy of this document. 2. Redistributions in binary form must reproduce the    above copyright notice, this list of conditions and the    following disclaimer in the documentation and/or other    materials provided with the distribution. 3. The name "groovy" must not be used to endorse or promote    products derived from this Software without prior written    permission of The Codehaus.  For written permission,    please contact info@codehaus.org. 4. Products derived from this Software may not be called "groovy"    nor may "groovy" appear in their names without prior written    permission of The Codehaus. "groovy" is a registered    trademark of The Codehaus. 5. Due credit should be given to The Codehaus -    http://groovy.codehaus.org/ THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */package groovy.sql;import groovy.lang.Closure;import groovy.lang.GroovyRuntimeException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.logging.Level;import org.codehaus.groovy.ast.ClassNode;import org.codehaus.groovy.ast.MethodNode;import org.codehaus.groovy.ast.stmt.Statement;/** * Represents an extent of objects *  * @author Chris Stevenson * @author <a href="mailto:james@coredevelopers.net">James Strachan</a> * @version $Revision: 1.8 $ */public class DataSet extends Sql {    private Closure where;    private DataSet parent;    private String table;    private SqlWhereVisitor visitor;    private String sql;    private List params;    public DataSet(Sql sql, Class type) {        super(sql);        String table = type.getName();        int idx = table.lastIndexOf('.');        if (idx > 0) {            table = table.substring(idx + 1);        }        this.table = table.toLowerCase();    }    public DataSet(Sql sql, String table) {        super(sql);        this.table = table;    }    public DataSet(DataSet parent, Closure where) {        super(parent);        this.table = parent.table;        this.parent = parent;        this.where = where;    }    public void add(Map values) throws SQLException {        StringBuffer buffer = new StringBuffer("insert into ");        buffer.append(table);        buffer.append(" (");        StringBuffer paramBuffer = new StringBuffer();        boolean first = true;        for (Iterator iter = values.entrySet().iterator(); iter.hasNext();) {            Map.Entry entry = (Map.Entry) iter.next();            String column = entry.getKey().toString();            if (first) {                first = false;                paramBuffer.append("?");            }            else {                buffer.append(", ");                paramBuffer.append(", ?");            }            buffer.append(column);        }        buffer.append(") values (");        buffer.append(paramBuffer.toString());        buffer.append(")");        Connection connection = createConnection();        PreparedStatement statement = null;        try {            statement = connection.prepareStatement(buffer.toString());            int i = 1;            for (Iterator iter = values.entrySet().iterator(); iter.hasNext();) {                Map.Entry entry = (Map.Entry) iter.next();                setObject(statement, i++, entry.getValue());            }            int answer = statement.executeUpdate();            if (answer != 1) {                log.log(Level.WARNING, "Should have updated 1 row not " + answer + " when trying to add: " + values);            }        }        catch (SQLException e) {            log.log(Level.WARNING, "Failed to add row for: " + values, e);            throw e;        }        finally {            closeResources(connection, statement);        }    }    public DataSet findAll(Closure where) {        return new DataSet(this, where);    }    public void each(Closure closure) throws SQLException {        eachRow(getSql(), getParameters(), closure);    }    public String getSql() {        if (sql == null) {            sql = "select * from " + table;            if (where != null) {                String clause = "";                if (parent != null && parent.where != null) {                    clause += parent.getSqlVisitor().getWhere() + " and ";                }                clause += getSqlVisitor().getWhere();                if (clause.length() > 0) {                    sql += " where " + clause;                }            }        }        return sql;    }    public List getParameters() {        if (params == null) {            params = new ArrayList();            if (parent != null && parent.where != null) {                params.addAll(parent.getParameters());            }            params.addAll(getSqlVisitor().getParameters());        }        return params;    }    protected SqlWhereVisitor getSqlVisitor() {        if (visitor == null) {            visitor = new SqlWhereVisitor();            if (where != null) {                ClassNode classNode = where.getMetaClass().getClassNode();                if (classNode == null) {                    throw new GroovyRuntimeException(                        "Could not find the ClassNode for MetaClass: " + where.getMetaClass());                }                List methods = classNode.getDeclaredMethods("doCall");                if (!methods.isEmpty()) {                    MethodNode method = (MethodNode) methods.get(0);                    if (method != null) {                        Statement statement = method.getCode();                        if (statement != null) {                            statement.visit(visitor);                        }                    }                }            }        }        return visitor;    }    /*     * create a subset of the original dataset     */    public DataSet createView(Closure criteria) {    	return new DataSet(this, criteria);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线日韩av片| 色菇凉天天综合网| 五月婷婷久久综合| 亚洲制服丝袜av| 亚洲国产精品一区二区久久| 亚洲一区在线播放| 亚洲午夜激情网页| 青娱乐精品视频| 国产在线精品不卡| 国产福利一区二区三区视频| 国产精品系列在线播放| 成人免费黄色在线| 在线精品视频免费观看| 3d动漫精品啪啪1区2区免费| 91精品国产91久久久久久一区二区 | 久久久国产午夜精品| 久久久噜噜噜久噜久久综合| 中文在线一区二区| 亚洲免费观看在线观看| 亚洲午夜电影网| 精品亚洲国内自在自线福利| 国产麻豆精品95视频| 色婷婷久久综合| 日韩免费电影网站| 亚洲欧美日韩一区二区三区在线观看| 亚洲色图制服诱惑| 日本强好片久久久久久aaa| 午夜精品久久久久久久久| 另类的小说在线视频另类成人小视频在线 | 9191精品国产综合久久久久久| 日韩午夜精品视频| 国产精品高潮呻吟久久| 亚洲图片一区二区| 韩国女主播成人在线| 91在线视频播放地址| 日韩亚洲电影在线| 国产精品麻豆视频| 乱一区二区av| 91福利视频网站| 国产日韩三级在线| 日本少妇一区二区| 在线观看一区二区精品视频| 久久欧美一区二区| 天堂va蜜桃一区二区三区 | 亚洲欧美日韩综合aⅴ视频| 日本不卡一区二区三区| 91女厕偷拍女厕偷拍高清| 26uuu亚洲综合色欧美 | 国产精品国产三级国产普通话蜜臀| 亚洲一区免费在线观看| 成人一二三区视频| 精品国产免费视频| 日韩不卡一区二区| 欧美四级电影网| 国产精品超碰97尤物18| 国产激情精品久久久第一区二区 | 国产午夜精品在线观看| 日本一道高清亚洲日美韩| 99re视频精品| 国产精品婷婷午夜在线观看| 蓝色福利精品导航| 欧美日精品一区视频| 一级中文字幕一区二区| 91丨九色丨蝌蚪丨老版| 国产精品久久综合| 成人午夜免费电影| 久久久亚洲午夜电影| 黑人巨大精品欧美黑白配亚洲| 日韩一区二区三免费高清| 午夜视频在线观看一区二区三区| 91亚洲精品久久久蜜桃网站| 国产精品福利一区二区| 成人三级伦理片| 国产精品国产自产拍高清av王其| 国产 欧美在线| 久久久不卡影院| 丁香婷婷综合五月| 国产欧美日韩三级| av在线一区二区| 亚洲精品少妇30p| 日本韩国一区二区三区视频| 亚洲欧美日韩人成在线播放| 色中色一区二区| 亚洲一二三区在线观看| 91精品蜜臀在线一区尤物| 免费观看在线色综合| www一区二区| 懂色一区二区三区免费观看| 国产精品久久久久久久久久久免费看 | 中文字幕在线观看一区| 色综合色综合色综合色综合色综合| 国产精品伦理一区二区| 色婷婷综合久久久久中文| 亚洲综合色婷婷| 日韩欧美国产三级| 成人污污视频在线观看| 一区二区免费在线播放| 日韩三级视频在线看| 国产suv精品一区二区883| 一区二区三区四区激情| 在线不卡中文字幕| 粗大黑人巨茎大战欧美成人| 亚洲一级二级在线| 久久精品日产第一区二区三区高清版| 成人国产精品免费| 日韩一区精品视频| 国产日本一区二区| 欧美日韩国产综合久久 | 色婷婷av一区二区三区之一色屋| 亚洲午夜一区二区三区| 久久久高清一区二区三区| 欧美日韩中文国产| 国产91精品免费| 日韩国产成人精品| 亚洲同性gay激情无套| 精品国产人成亚洲区| 欧美午夜影院一区| 成人三级伦理片| 美女视频一区二区三区| 亚洲欧洲av在线| 精品久久99ma| 欧美性生交片4| 99久久久久免费精品国产 | 国产精品美女视频| 91精品国产免费| 在线精品视频免费观看| 成人视屏免费看| 国产一区久久久| 日韩国产成人精品| 亚洲一区二区视频在线| 日韩一区有码在线| 欧美国产精品专区| 久久综合丝袜日本网| 欧美一区二区三区系列电影| 色综合天天综合网国产成人综合天 | 一区二区三区中文在线| 国产精品色噜噜| 国产午夜亚洲精品理论片色戒 | 国产成人三级在线观看| 人人狠狠综合久久亚洲| 午夜不卡av免费| 亚洲成人三级小说| 亚洲成人av一区二区| 尤物av一区二区| 一片黄亚洲嫩模| 亚洲成av人片一区二区| 亚洲国产日日夜夜| 亚洲国产乱码最新视频| 亚洲一二三区不卡| 天堂影院一区二区| 婷婷成人综合网| 蜜臀av在线播放一区二区三区 | 国产精品视频一二三| 国产欧美一区在线| 国产女人aaa级久久久级| 国产欧美一区二区精品婷婷| 久久精品一区二区三区不卡牛牛| 久久久综合网站| 中文字幕不卡在线| 一区在线观看免费| 亚洲国产精品久久久久秋霞影院 | 国产伦精品一区二区三区视频青涩| 日本人妖一区二区| 国产在线一区观看| 成人网页在线观看| 欧美综合天天夜夜久久| 91精品在线麻豆| 久久女同互慰一区二区三区| 国产精品欧美综合在线| 亚洲国产日韩精品| 久久国产精品99久久久久久老狼 | 国产亚洲综合av| 亚洲欧美另类综合偷拍| 天堂精品中文字幕在线| 国产精品一区二区在线观看不卡| 波多野洁衣一区| 欧美精品乱码久久久久久按摩| 日韩精品一区二区三区在线播放| 久久久久久夜精品精品免费| 亚洲欧美日韩久久精品| 免费观看在线色综合| 不卡免费追剧大全电视剧网站| 欧美性欧美巨大黑白大战| 欧美电视剧免费全集观看| 亚洲人精品一区| 裸体一区二区三区| 91国内精品野花午夜精品 | 国产精品一区二区久激情瑜伽| 波多野结衣精品在线| 日韩免费视频一区二区| 国产精品成人午夜| 久久精品久久精品| 欧美亚洲丝袜传媒另类| 久久久国产精华| 日本中文字幕不卡| 91国偷自产一区二区开放时间| 2020日本不卡一区二区视频| 一区二区三区在线视频观看| 狠狠色伊人亚洲综合成人| 欧美视频一区在线观看|