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

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

?? mysqlio.java

?? 基于java的oa系統
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/* Copyright (C) 2002-2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation.  There are special exceptions to the terms and conditions of the GPL  as it is applied to this software. View the full text of the  exception exception in file EXCEPTIONS-CONNECTOR-J in the directory of this  software distribution. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */package com.mysql.jdbc;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.ByteArrayOutputStream;import java.io.EOFException;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStreamWriter;import java.lang.ref.SoftReference;import java.net.Socket;import java.security.NoSuchAlgorithmException;import java.sql.SQLException;import java.sql.SQLWarning;import java.util.ArrayList;import java.util.Properties;import java.util.zip.Deflater;import java.util.zip.Inflater;/** * This class is used by Connection for communicating with the MySQL server. * * @author Mark Matthews * @version $Id: MysqlIO.java,v 1.32.2.61 2004/08/27 21:50:12 mmatthew Exp $ * * @see java.sql.Connection */public class MysqlIO {    static final int NULL_LENGTH = ~0;    static final int COMP_HEADER_LENGTH = 3;    static final int MIN_COMPRESS_LEN = 50;    static final int HEADER_LENGTH = 4;    private static int maxBufferSize = 65535;    private static final int CLIENT_COMPRESS = 32; /* Can use compression    protcol */    private static final int CLIENT_CONNECT_WITH_DB = 8;    private static final int CLIENT_FOUND_ROWS = 2;    private static final int CLIENT_IGNORE_SPACE = 256; /* Ignore spaces    before '(' */    private static final int CLIENT_LOCAL_FILES = 128; /* Can use LOAD DATA    LOCAL */    /* Found instead of       affected rows */    private static final int CLIENT_LONG_FLAG = 4; /* Get all column flags */    private static final int CLIENT_LONG_PASSWORD = 1; /* new more secure    passwords */    private static final int CLIENT_PROTOCOL_41 = 512; // for > 4.1.1    private static final int CLIENT_INTERACTIVE = 1024;    private static final int CLIENT_SSL = 2048;    private static final int CLIENT_RESERVED = 16384; // for 4.1.0 only    private static final int CLIENT_SECURE_CONNECTION = 32768;    private static final String FALSE_SCRAMBLE = "xxxxxxxx";    /**     * We store the platform 'encoding' here, only used to avoid munging     * filenames for LOAD DATA LOCAL INFILE...     */    private static String jvmPlatformCharset = null;    static {        OutputStreamWriter outWriter = null;        //        // Use the I/O system to get the encoding (if possible), to avoid        // security restrictions on System.getProperty("file.encoding") in        // applets (why is that restricted?)        //        try {            outWriter = new OutputStreamWriter(new ByteArrayOutputStream());            jvmPlatformCharset = outWriter.getEncoding();        } finally {            try {            	if (outWriter != null) {            		outWriter.close();            	}            } catch (IOException ioEx) {                // ignore            }        }    }    //    // Use this when reading in rows to avoid thousands of new()    // calls, because the byte arrays just get copied out of the    // packet anyway    //    private Buffer reusablePacket = null;    private Buffer sendPacket = null;    private Buffer sharedSendPacket = null;    /** Data to the server */    //private DataOutputStream     _Mysql_Output             = null;    private BufferedOutputStream mysqlOutput = null;    private com.mysql.jdbc.Connection connection;    private Deflater deflater = null;    private Inflater inflater = null;    /** Buffered data from the server */    //private BufferedInputStream  _Mysql_Buf_Input          = null;    /** Buffered data to the server */    //private BufferedOutputStream _Mysql_Buf_Output         = null;    /** Data from the server */    //private DataInputStream      _Mysql_Input              = null;    private InputStream mysqlInput = null;    private RowData streamingData = null;    //    // For SQL Warnings    //    private SQLWarning warningChain = null;    /** The connection to the server */    private Socket mysqlConnection = null;    private SocketFactory socketFactory = null;    //    // Packet used for 'LOAD DATA LOCAL INFILE'    //    // We use a SoftReference, so that we don't penalize intermittent    // use of this feature    //    private SoftReference loadFileBufRef;    //    // Used to send large packets to the server versions 4+    // We use a SoftReference, so that we don't penalize intermittent    // use of this feature    //    private SoftReference splitBufRef;    private String host = null;    private String seed;    private String serverVersion = null;    private String socketFactoryClassName = null;    private byte[] packetHeaderBuf = new byte[4];    private boolean clearStreamBeforeEachQuery = false;    private boolean colDecimalNeedsBump = false; // do we need to increment the colDecimal flag?    private boolean has41NewNewProt = false;    /** Does the server support long column info? */    private boolean hasLongColumnInfo = false;    private boolean isInteractiveClient = false;    /**     * Does the character set of this connection match the character set of the     * platform     */    private boolean platformDbCharsetMatches = true;    private boolean profileSql = false;    /** Should we use 4.1 protocol extensions? */    private boolean use41Extensions = false;    private boolean useCompression = false;    private boolean useNewLargePackets = false;    private boolean useNewUpdateCounts = false; // should we use the new larger update counts?    private byte packetSequence = 0;    private byte protocolVersion = 0;    private int clientParam = 0;    // changed once we've connected.    private int maxAllowedPacket = 1024 * 1024;    private int maxThreeBytes = 255 * 255 * 255;    private int port = 3306;    private int serverCapabilities;    private int serverMajorVersion = 0;    private int serverMinorVersion = 0;    private int serverSubMinorVersion = 0;	protected int serverCharsetIndex;	private static final int MAX_QUERY_LENGTH_TO_LOG =  4 * 1024; // 4K    /**     * Constructor:  Connect to the MySQL server and setup a stream connection.     *     * @param host the hostname to connect to     * @param port the port number that the server is listening on     * @param socketFactoryClassName the socket factory to use     * @param props the Properties from DriverManager.getConnection()     * @param conn the Connection that is creating us     * @param socketTimeout the timeout to set for the socket (0 means no     *        timeout)     *     * @throws IOException if an IOException occurs during connect.     * @throws java.sql.SQLException if a database access error occurs.     */    protected MysqlIO(String host, int port, String socketFactoryClassName,        Properties props, com.mysql.jdbc.Connection conn, int socketTimeout)        throws IOException, java.sql.SQLException {        this.connection = conn;        this.reusablePacket = new Buffer(this.connection.getNetBufferLength());        this.port = port;        this.host = host;        this.socketFactoryClassName = socketFactoryClassName;        this.socketFactory = createSocketFactory();        this.mysqlConnection = socketFactory.connect(this.host, this.port, props);        this.clearStreamBeforeEachQuery = this.connection.alwaysClearStream();        if (socketTimeout != 0) {            try {                this.mysqlConnection.setSoTimeout(socketTimeout);            } catch (Exception ex) {                /* Ignore if the platform does not support it */            }        }        this.mysqlConnection = this.socketFactory.beforeHandshake();        if (!this.connection.isUsingUnbufferedInput()) {            this.mysqlInput = new BufferedInputStream(this.mysqlConnection                    .getInputStream(), 16384);        } else {            this.mysqlInput = this.mysqlConnection.getInputStream();        }        this.mysqlOutput = new BufferedOutputStream(this.mysqlConnection                .getOutputStream(), 16384);        this.isInteractiveClient = this.connection.isInteractiveClient();    }    /**     * Should the driver generate SQL statement profiles?     *     * @param flag should the driver enable profiling?     */    protected void setProfileSql(boolean flag) {        this.profileSql = flag;    }    /**     * Build a result set. Delegates to buildResultSetWithRows() to build a     * JDBC-version-specific ResultSet, given rows as byte data, and field     * information.     *     * @param columnCount the number of columns in the result set     * @param maxRows the maximum number of rows to read (-1 means all rows)     * @param resultSetType the type of result set (CONCUR_UPDATABLE or     *        READ_ONLY)     * @param streamResults should the result set be read all at once, or     *        streamed?     * @param catalog the database name in use when the result set was created     *     * @return a result set     *     * @throws Exception if a database access error occurs     */    protected ResultSet getResultSet(long columnCount, int maxRows,        int resultSetType, boolean streamResults, String catalog)        throws Exception {        Buffer packet; // The packet from the server        Field[] fields = new Field[(int) columnCount];        // Read in the column information        for (int i = 0; i < columnCount; i++) {            packet = readPacket();            fields[i] = unpackField(packet, false);        }        packet = reuseAndReadPacket(this.reusablePacket);        RowData rowData = null;        if (!streamResults) {            ArrayList rows = new ArrayList();            // Now read the data            byte[][] rowBytes = nextRow((int) columnCount);            int rowCount = 0;            if (rowBytes != null) {                rows.add(rowBytes);                rowCount = 1;            }            while ((rowBytes != null) && (rowCount < maxRows)) {                rowBytes = nextRow((int) columnCount);                if (rowBytes != null) {                    rows.add(rowBytes);                    rowCount++;                } else {                    if (Driver.TRACE) {                        Debug.msg(this, "* NULL Row *");                    }                }            }            //            // Clear any outstanding data left on the wire            // when we've artifically limited the number of             // rows we retrieve (fix for BUG#1695)            //            if (rowCount <= maxRows) {                clearInputStream();            }            if (Driver.TRACE) {                Debug.msg(this,                    "* Fetched " + rows.size() + " rows from server *");            }            rowData = new RowDataStatic(rows);            reclaimLargeReusablePacket();        } else {            rowData = new RowDataDynamic(this, (int) columnCount);            this.streamingData = rowData;        }        return buildResultSetWithRows(catalog, fields, rowData, resultSetType);    }    /**     * Forcibly closes the underlying socket to MySQL.     */    protected final void forceClose() {        try {            if (this.mysqlInput != null) {                this.mysqlInput.close();            }        } catch (IOException ioEx) {            // we can't do anything constructive about this            // Let the JVM clean it up later            this.mysqlInput = null;        }        try {            if (this.mysqlOutput != null) {                this.mysqlOutput.close();            }        } catch (IOException ioEx) {            // we can't do anything constructive about this            // Let the JVM clean it up later            this.mysqlOutput = null;        }        try {            if (this.mysqlConnection != null) {                this.mysqlConnection.close();            }        } catch (IOException ioEx) {            // we can't do anything constructive about this            // Let the JVM clean it up later            this.mysqlConnection = null;        }    }    /**     * Re-authenticates as the given user and password     *     * @param userName DOCUMENT ME!

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合亚洲深深色噜噜狠狠网站| 另类人妖一区二区av| 久久99国产精品麻豆| 欧美一区二区三区四区在线观看| 亚洲超碰精品一区二区| 欧美日韩成人激情| 美脚の诱脚舐め脚责91| 2024国产精品| 99视频精品全部免费在线| 中文字幕在线播放不卡一区| 91毛片在线观看| 亚洲高清中文字幕| 日韩精品一区二区三区视频| 国产一区二区三区观看| 日韩码欧中文字| 在线播放中文一区| 国产精品一区二区在线观看网站| 亚洲国产精品成人综合| 欧美撒尿777hd撒尿| 久久精品国产亚洲a| 国产精品青草久久| 欧美日韩精品欧美日韩精品一| 蜜臂av日日欢夜夜爽一区| 国产欧美日产一区| 欧美日本韩国一区二区三区视频| 国产一区二区三区蝌蚪| 夜夜嗨av一区二区三区中文字幕 | 日韩精品中文字幕一区二区三区| 国内成人精品2018免费看| 一区视频在线播放| 欧美电影精品一区二区| 在线视频国内一区二区| 国产在线日韩欧美| 亚洲成人三级小说| 亚洲天堂免费看| 精品成人在线观看| 欧美日韩久久不卡| 99精品欧美一区二区蜜桃免费| 日韩精品乱码av一区二区| 国产精品久久精品日日| 精品久久久久久久久久久久久久久久久 | 精品一区二区三区视频 | av中文字幕亚洲| 久久精品免费观看| 午夜精品国产更新| 亚洲精品日产精品乱码不卡| 日韩欧美亚洲一区二区| 欧美日韩在线亚洲一区蜜芽| 成人av电影在线网| 国产精品综合在线视频| 日韩av不卡在线观看| 一二三区精品视频| 亚洲激情五月婷婷| 国产精品久久久久久亚洲伦| 国产午夜亚洲精品不卡| 26uuu精品一区二区三区四区在线| 欧美怡红院视频| 91行情网站电视在线观看高清版| 岛国一区二区在线观看| 国产真实精品久久二三区| 青青青伊人色综合久久| 日韩专区中文字幕一区二区| 亚洲成人av中文| 午夜精品久久久久久久久久| 天天影视网天天综合色在线播放| 亚洲黄色小说网站| 亚洲午夜精品在线| 久久精品一二三| 亚洲h精品动漫在线观看| 欧美96一区二区免费视频| 国产在线不卡一卡二卡三卡四卡| 精品国产91乱码一区二区三区 | 精品视频在线看| 久久久久久久久久久久久女国产乱 | 精品1区2区在线观看| 亚洲乱码国产乱码精品精的特点| 蜜臂av日日欢夜夜爽一区| 91小视频免费看| 日韩美女视频一区| 国产剧情一区二区三区| 91精品国产乱| 亚洲国产日韩av| 日本道色综合久久| 国产精品久久久久久久久动漫 | 亚洲一区二区三区精品在线| 懂色av一区二区三区免费观看 | 日韩av午夜在线观看| 在线免费观看日本一区| 亚洲欧美中日韩| 成人美女在线观看| 国产午夜三级一区二区三| 久久国产精品99久久久久久老狼| 欧美日韩高清一区二区三区| 亚洲国产视频一区二区| 欧美午夜精品久久久| 一区二区三区不卡在线观看| 91视频com| 一区二区三区在线视频播放| 色婷婷亚洲婷婷| 亚洲欧美偷拍卡通变态| 91一区二区三区在线播放| 国产精品国产a级| 成人激情黄色小说| 自拍偷拍亚洲激情| 在线一区二区三区| 亚洲午夜久久久久中文字幕久| 在线观看一区二区视频| 日日夜夜免费精品| 欧美一区二区三区四区五区| 九九视频精品免费| 久久综合九色欧美综合狠狠 | 一区二区免费看| 欧美日韩综合不卡| 日韩**一区毛片| 亚洲精品一区二区三区四区高清| 紧缚奴在线一区二区三区| 久久精品免费在线观看| 91麻豆国产在线观看| 依依成人综合视频| 91精品国产91久久久久久一区二区 | 中文字幕中文字幕一区| 色综合久久久久久久久| 亚洲成精国产精品女| 日韩欧美另类在线| www.视频一区| 无码av免费一区二区三区试看| 欧美日本国产一区| 国内精品嫩模私拍在线| 综合电影一区二区三区 | 精品盗摄一区二区三区| 成人av网站在线观看| 午夜天堂影视香蕉久久| 久久理论电影网| 欧美影片第一页| 国产剧情一区二区| 亚洲五码中文字幕| 欧美国产一区二区| 6080yy午夜一二三区久久| 成人性生交大片免费看视频在线| 亚洲自拍偷拍av| 国产亚洲欧美一级| 欧美精品在线视频| 不卡视频一二三| 蜜臀久久99精品久久久画质超高清| 国产日韩成人精品| 制服丝袜一区二区三区| 91在线观看下载| 精品一区在线看| 亚洲一区二区三区小说| 欧美国产丝袜视频| 精品久久人人做人人爰| 欧美日韩一区二区三区高清| 成人精品一区二区三区中文字幕| 免费一区二区视频| 亚洲成人激情综合网| 国产精品不卡在线| 久久综合九色综合97婷婷女人| 欧美女孩性生活视频| 91伊人久久大香线蕉| 国产成人亚洲综合a∨猫咪| 丝袜a∨在线一区二区三区不卡| 国产精品久久久久久久久快鸭 | 日本亚洲视频在线| 亚洲一区二区三区四区中文字幕| 中文字幕在线一区| 欧美激情综合五月色丁香小说| 日韩女优av电影在线观看| 欧美视频在线观看一区二区| a亚洲天堂av| 成人免费视频caoporn| 国产一区二区三区日韩| 精品制服美女丁香| 视频一区欧美日韩| 视频一区中文字幕| 亚洲成国产人片在线观看| 亚洲制服丝袜一区| 亚洲一区日韩精品中文字幕| 亚洲美女在线国产| 一区二区三区中文字幕精品精品 | 欧美一级日韩免费不卡| 91麻豆精品国产无毒不卡在线观看 | 亚洲观看高清完整版在线观看 | 欧美大片拔萝卜| 欧美电影免费观看完整版| 欧美一级免费观看| 日韩精品在线网站| 久久久久国产精品厨房| 国产婷婷色一区二区三区四区 | 亚洲乱码中文字幕| 亚洲精品一二三| 亚洲一二三四在线| 五月天网站亚洲| 成人av在线电影| 成人av影视在线观看| 91麻豆免费看| 91麻豆精品国产自产在线观看一区| 日韩视频在线观看一区二区| www国产精品av| 中文字幕欧美激情一区| 亚洲欧美激情插|