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

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

?? sqlexecuter.java

?? 采用Eclispe開發(fā)平臺
?? JAVA
字號:
package com.whatratimes.dbms;

/**
 * Created by IntelliJ IDEA.
 * User: Tao
 * Date: May 8, 2003
 * Time: 10:13:23 PM
 */

import java.util.*;
import java.util.Date;
import java.sql.*;
import java.io.*;

public abstract class SQLExecuter
{
    private Class returnClass;
    private int rowsSkip = 0;
    private int rowsReturn = Integer.MAX_VALUE;

    public static final int MAX_CLOB_LENGTH = 1024 * 256;
    public static final int MAX_BLOB_LENGTH = 1024 * 1024 * 10;

    protected Connection dbConn;

    protected StringBuffer tablesClause;
    protected Vector tables = new Vector();


    protected Hashtable values = new Hashtable();

    protected Hashtable whereConditions = new Hashtable();
    protected StringBuffer whereClause = new StringBuffer();
    protected String whereClauseOperator = " AND ";

    protected SQLExecuter()
    {
        dbConn = DBHelper.getDBConnection();
    }


    protected void setRowLimit(int skip, int rows)
    {
        rowsSkip = skip;
        rowsReturn = rows;
    }

    public void setReturnClassName(String return_class_name)
    {
        try
        {
            returnClass = Class.forName(DBHelper.TABLE_PACKAGE_PREFIX + return_class_name);
            BeanHelper.keepFields(returnClass.newInstance());
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    public void appendTableName(String table_name)
    {
        appendTableName(table_name, "");
    }

    public void appendTableName(String table_name, String table_alias)
    {
        tables.add(table_name);

        if (tablesClause == null)
        {
            tablesClause = new StringBuffer();
        } else
        {
            tablesClause.append(", ");
        }

        tablesClause.append(table_name);
        tablesClause.append(" ");
        tablesClause.append(table_alias);
        tablesClause.append(" ");

        BeanHelper.keepFields(table_name);
    }

    protected String getTableString()
    {
        return " FROM " + tablesClause;
    }


    protected void appendValue(String column_name, Object value)
    {
        values.put(column_name, value);

    }

    protected void appendValuesByBean(Object this_table)
    {
        Hashtable hash = BeanHelper.getValues(this_table);

        Enumeration enu = hash.keys();

        while (enu.hasMoreElements())
        {
            Object key = enu.nextElement();

            Object value = hash.get(key);

            appendValue(key.toString(), value);
        }
    }

    protected void appendValuesByHashtable(Hashtable properties)
    {
        Enumeration enu = properties.keys();

        while (enu.hasMoreElements())
        {
            Object key = enu.nextElement();

            Enumeration enu_tables = tables.elements();

            while (enu_tables.hasMoreElements())
            {
                if (BeanHelper.containsField(enu_tables.nextElement().toString(), key.toString()))
                {
                    Object value = properties.get(key);

                    appendValue(key.toString(), value);

                    break;
                }
            }

        }
    }

    protected void appendWhereCondition(String column_name, String operator, Object value)
    {
        whereConditions.put(column_name + " " + operator, value);

    }

    protected void appendWhereClause(String where_clause)
    {
        if (whereClause.length() > 0)
        {
            whereClause.append(whereClauseOperator);
        }

        whereClause.append(where_clause);
    }

    protected void setWhereConditionOR()
    {
        whereClauseOperator = " OR ";

    }

    protected String getWhereClause()
    {
        StringBuffer myWhereClause = new StringBuffer(whereClause.toString());

        if (!whereConditions.isEmpty())
        {
            String[] wheres = new String[whereConditions.size()];

            Enumeration enu = whereConditions.keys();

            int i = 0;

            while (enu.hasMoreElements())
            {
                String this_column = (String) enu.nextElement();
                wheres[i++] = this_column + " ? ";
            }

            if (myWhereClause.length() > 0)
            {
                myWhereClause.append(whereClauseOperator);
            }

            myWhereClause.append(wheres[0]);

            for (int j = 1; j < wheres.length; j++)
            {
                myWhereClause.append(whereClauseOperator + wheres[j]);
            }
        }

        if (myWhereClause.length() > 0)
        {
            myWhereClause.insert(0, " where ");
        }

        return myWhereClause.toString();


    }

    private void putParameters(PreparedStatement pst, Enumeration keys, Hashtable hash, int parameter_index) throws SQLException
    {

        while (keys.hasMoreElements())
        {
            String this_column = (String) keys.nextElement();

            Object obj = hash.get(this_column);

            if (obj instanceof Date)
            {
                obj = new Timestamp(((Date) obj).getTime());
                pst.setObject(++parameter_index, obj);
            } else if (obj instanceof Calendar)
            {
                obj = new Timestamp(((Calendar) obj).getTime().getTime());
                pst.setObject(++parameter_index, obj);
            } else if ( obj instanceof String )
            {
                pst.setObject(++parameter_index, obj);

            } else if (obj.getClass().isArray())
            {
                String ct = obj.getClass().getComponentType().getName();

                if (ct.equals("char"))
                {
                    int len = ((char[]) obj).length;
                    if (len > MAX_CLOB_LENGTH)
                    {
                        len = MAX_CLOB_LENGTH;
                    }
                    pst.setCharacterStream(++parameter_index, new CharArrayReader((char[]) obj), len);


                }

                if (ct.equals("byte"))
                {
                    int len = ((byte[]) obj).length;
                    if (len > MAX_BLOB_LENGTH)
                    {
                        len = MAX_BLOB_LENGTH;
                    }
                    pst.setBinaryStream(++parameter_index, new ByteArrayInputStream((byte[]) obj), len);

                }
            } else if (obj instanceof InputStream)
            {
                try
                {
                    pst.setBinaryStream(++parameter_index, (InputStream) obj, ((InputStream) obj).available());
                } catch (Exception e)
                {
                    e.printStackTrace();
                }

            } else
            {
                pst.setObject(++parameter_index, obj);
            }
        }

    }

    private PreparedStatement prepare() throws SQLException
    {

        PreparedStatement pst = null;

        System.out.println(getSQL());

        pst = dbConn.prepareStatement(getSQL());
        Enumeration keys;

        keys = values.keys();
        putParameters(pst, keys, values, 0);

        keys = whereConditions.keys();
        putParameters(pst, keys, whereConditions, values.size());

        return pst;
    }

    protected int executeUpdate()
    {
        PreparedStatement pst = null;

        try
        {
            synchronized (dbConn)
            {

                pst = prepare();
                return pst.executeUpdate();
            }
        } catch (Exception e)
        {
            System.err.println(getSQL());
            e.printStackTrace();
        } finally
        {
            if (pst != null)
            {
                try
                {
                    pst.close();
                } catch (SQLException e)
                {
                    e.printStackTrace();
                }
            }
        }

        return 0;
    }

    protected Object[] executeQuery()
    {
        PreparedStatement pst = null;
        ResultSet rs = null;

        LinkedList result = new LinkedList();
        String[] columnNames;

        try
        {
            synchronized (dbConn)
            {
                pst = prepare();

                rs = pst.executeQuery();

                ResultSetMetaData rsmd = rs.getMetaData();

                columnNames = new String[rsmd.getColumnCount()];

                for (int i = 0; i < columnNames.length; i++)
                {
                    columnNames[i] = rsmd.getColumnName(i + 1);
                }


                while (rs.next())
                {

                    if (rowsSkip-- > 0)
                    {
                        continue;
                    }

                    if (rowsReturn-- > 0)
                    {

                        Hashtable prop = new Hashtable();

                        for (int i = 0; i < columnNames.length; i++)
                        {
                            Object obj = rs.getObject(i + 1);

                            obj = convertSQLTypeToJava(obj);

                            if (obj != null)
                            {
                                prop.put(columnNames[i], obj);
                            }
                        }

                        result.addLast(prop);
                    }
                }
            }
        } catch (Exception e)
        {
            System.err.println(getSQL());
            e.printStackTrace();

            return new Object[0];

        } finally
        {
            if (rs != null)
            {
                try
                {
                    rs.close();
                } catch (SQLException e)
                {
                    e.printStackTrace();
                }
            }

            if (pst != null)
            {
                try
                {
                    pst.close();
                } catch (SQLException e)
                {
                    e.printStackTrace();
                }
            }
        }

        if (result.size() == 0)
        {
            return new Object[0];
        }

        if (returnClass == null)
        {
            return (Hashtable[]) result.toArray(new Hashtable[result.size()]);
        }

        Object[] rt = new Object[result.size()];

        for (int i = 0; i < rt.length; i++)
        {
            rt[i] = buildBeanFromProperties((Hashtable) result.removeFirst());

        }

        return rt;
    }

    private Object convertSQLTypeToJava(Object obj)
    {
        if (obj instanceof java.sql.Timestamp)
        {
            return new Date(((java.sql.Timestamp) obj).getTime());
        }

        if (obj instanceof java.sql.Date)
        {
            return new Date(((java.sql.Date) obj).getTime());
        }

        if (obj instanceof java.sql.Time)
        {
            return new Date(((java.sql.Time) obj).getTime());
        }

        if (obj instanceof java.lang.String)
        {
            String str = obj.toString().trim();


            return str;
        }

        return obj;
    }

    private Object buildBeanFromProperties(Hashtable prop)
    {
        if (returnClass == null)
        {
            return prop;
        }

        Object obj;

        try
        {
            obj = returnClass.newInstance();

            Enumeration enu = prop.keys();

            while (enu.hasMoreElements())
            {
                String columnName = enu.nextElement().toString();
                Object value = prop.get(columnName);

                if (value == null)
                {
                    continue;
                }

                BeanHelper.setValue(obj, columnName, value);

            }

            return obj;

        } catch (Exception e)
        {
            e.printStackTrace();
        }

        return prop;
    }


    public abstract String getSQL();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美亚洲另类制服综合在线| 九九精品视频在线看| www.亚洲免费av| 国产成人自拍网| 国产麻豆精品视频| 国产乱理伦片在线观看夜一区| 久久国产精品一区二区| 久久国产欧美日韩精品| 久99久精品视频免费观看| 麻豆久久久久久| 亚洲欧洲综合另类在线| 精品一区二区国语对白| 捆绑紧缚一区二区三区视频| 免费三级欧美电影| 蜜桃视频第一区免费观看| 日韩成人午夜精品| 一区二区三区波多野结衣在线观看| 中文字幕欧美激情| 亚洲人成人一区二区在线观看| 国产精品乱码久久久久久| 最新热久久免费视频| 伊人一区二区三区| 免费观看成人鲁鲁鲁鲁鲁视频| 精品一区二区三区视频| 懂色av一区二区夜夜嗨| 91福利视频网站| 日韩你懂的在线播放| 国产欧美日韩久久| 亚洲精品一二三区| 免费成人在线观看| 国产成a人无v码亚洲福利| 日本精品免费观看高清观看| 日韩欧美中文字幕精品| 国产精品国产精品国产专区不蜜 | 美女在线观看视频一区二区| 人人狠狠综合久久亚洲| 黑人巨大精品欧美黑白配亚洲| 成人免费毛片aaaaa**| 欧美日韩精品福利| 国产欧美一区二区精品婷婷| 亚洲国产精品久久艾草纯爱| 国产专区欧美精品| 欧美三级在线看| 国产欧美在线观看一区| 视频一区免费在线观看| 成人av在线观| 制服.丝袜.亚洲.中文.综合| 国产精品久久久久永久免费观看| 日本欧美一区二区三区| 91亚洲资源网| 国产区在线观看成人精品| 亚洲v中文字幕| 麻豆一区二区三区| jlzzjlzz亚洲日本少妇| 91精品国产aⅴ一区二区| 国产精品传媒视频| 日韩一区二区三区视频| 国产精品不卡视频| 国产麻豆成人精品| 欧美区视频在线观看| 亚洲色图19p| 国产露脸91国语对白| 91精品福利在线一区二区三区 | 日欧美一区二区| 97久久精品人人做人人爽| 久久嫩草精品久久久精品一| 日本系列欧美系列| 欧美日韩国产bt| 亚洲一区二区中文在线| 一本色道综合亚洲| 日韩伦理av电影| www.66久久| 成人免费在线视频观看| 成人一级片在线观看| 国产欧美日本一区视频| 狠狠色狠狠色综合系列| 精品美女一区二区| 国产一区二区免费在线| 欧美精品一区二区三区四区| 狠狠色狠狠色综合| 久久夜色精品国产欧美乱极品| 六月丁香婷婷色狠狠久久| 日韩视频123| 国产综合一区二区| 久久久久久久久一| 国产.欧美.日韩| 国产精品高潮呻吟久久| 91丨porny丨首页| 亚洲最新视频在线播放| 欧美日韩一本到| 日本不卡在线视频| 精品久久久久香蕉网| 国产成人精品免费一区二区| 欧美国产丝袜视频| 色综合久久66| 日韩在线一区二区| 欧美精品一区二区高清在线观看| 国产一区二区三区四区在线观看 | 中文字幕在线观看一区二区| 99r精品视频| 午夜在线电影亚洲一区| 精品美女一区二区| 96av麻豆蜜桃一区二区| 亚洲成人免费在线观看| wwww国产精品欧美| www.久久久久久久久| 亚洲大片在线观看| 精品久久久久99| 99久久99久久久精品齐齐| 亚洲第一狼人社区| 精品国产区一区| 日本乱码高清不卡字幕| 狠狠色综合日日| 亚洲线精品一区二区三区| 精品卡一卡二卡三卡四在线| 91蜜桃视频在线| 免费在线看成人av| 亚洲三级在线免费观看| 精品福利在线导航| 91国偷自产一区二区三区成为亚洲经典| 日本少妇一区二区| 亚洲女同女同女同女同女同69| 日韩三级av在线播放| 99re这里只有精品首页| 久久99国产精品尤物| 亚洲男人电影天堂| www国产精品av| 欧美一级欧美三级在线观看| 91在线云播放| 国产精华液一区二区三区| 婷婷夜色潮精品综合在线| 最新高清无码专区| 久久人人爽人人爽| 91精品国产91久久久久久一区二区| 99久久精品一区| 国产成+人+日韩+欧美+亚洲| 日韩高清不卡在线| 亚洲电影第三页| 亚洲一区二区三区免费视频| 成人欧美一区二区三区| 亚洲国产成人自拍| 国产欧美日韩在线观看| 久久综合九色综合97婷婷| 日韩三级免费观看| 日韩欧美国产综合在线一区二区三区| 一本大道久久a久久综合| 91丨porny丨中文| 91伊人久久大香线蕉| 色综合久久天天| 色婷婷av一区二区三区大白胸| 成人伦理片在线| 国产69精品一区二区亚洲孕妇| 国产中文一区二区三区| 久久99精品视频| 国内精品久久久久影院薰衣草| 久久精品国产一区二区| 免费人成网站在线观看欧美高清| 偷拍自拍另类欧美| 午夜精品一区二区三区免费视频| 亚洲欧美日韩在线不卡| 一区二区三区欧美| 亚洲第一福利视频在线| 日韩av在线发布| 免费精品视频最新在线| 久久99国产精品麻豆| 国产一区二区三区四| 国产精品亚洲人在线观看| 岛国av在线一区| 91网页版在线| 欧美精品久久久久久久多人混战| 欧美精品乱码久久久久久| 日韩免费一区二区三区在线播放| 欧美电视剧在线看免费| 日本一区二区三区四区| 亚洲三级在线免费观看| 日韩不卡在线观看日韩不卡视频| 久久se这里有精品| 不卡电影免费在线播放一区| 欧洲av一区二区嗯嗯嗯啊| 这里只有精品99re| 久久欧美一区二区| 国产精品福利在线播放| 午夜私人影院久久久久| 狠狠色狠狠色综合系列| 色婷婷精品大在线视频| 日韩免费高清电影| 中文字幕一区二区三区蜜月| 婷婷久久综合九色综合绿巨人 | 欧美aaa在线| 国产福利不卡视频| 欧美午夜一区二区三区免费大片| 欧美一级日韩免费不卡| 中文字幕免费一区| 视频一区欧美精品| 91丨九色丨黑人外教| 欧美精品一区二区三| 亚洲一区二区三区四区不卡| 国产精品一二三区在线| 欧美日韩国产三级| 国产精品灌醉下药二区|