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

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

?? escapeprocessor.java

?? jsp數據庫系統
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
   Copyright (C) 2002 MySQL AB

      This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation; either version 2 of the License, or
      (at your option) any later version.

      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

 */

/**
 * EscapeProcessor performs all escape code processing as outlined
 * in the JDBC spec by JavaSoft.
 *
 * @author Mark Matthews
 * @version $Id: EscapeProcessor.java,v 1.9.2.8 2003/12/24 05:16:25 mmatthew Exp $
 */
package com.mysql.jdbc;

import java.sql.SQLException;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;


class EscapeProcessor {
    /**
     * Escape process one string
     *
     * @param SQL the SQL to escape process.
     * @param serverSupportsConvertFn does the server support CONVERT() or CAST()?
     * 
     * @return the SQL after it has been escape processed.
     */
    public static final String escapeSQL(String sql, boolean serverSupportsConvertFn)
        throws java.sql.SQLException {
        boolean replaceEscapeSequence = false;
        String escapeSequence = null;
        StringBuffer newSql = new StringBuffer();

        if (sql == null) {
            return null;
        }

        /*
         * Short circuit this code if we don't have a matching pair of
         * "{}". - Suggested by Ryan Gustafason
         */
        int beginBrace = sql.indexOf('{');
        int nextEndBrace = (beginBrace == -1) ? (-1)
                                              : sql.indexOf('}', beginBrace);

        if (nextEndBrace == -1) {
            return sql;
        }

        EscapeTokenizer escapeTokenizer = new EscapeTokenizer(sql);

        while (escapeTokenizer.hasMoreTokens()) {
            String token = escapeTokenizer.nextToken();

            if (token.startsWith("{")) { // It's an escape code

                if (!token.endsWith("}")) {
                    throw new java.sql.SQLException(
                        "Not a valid escape sequence: " + token);
                }

                if (token.length() > 2) {
                    int nestedBrace = token.indexOf('{', 2);

                    if (nestedBrace != -1) {
                        StringBuffer buf = new StringBuffer(token.substring(0, 1));

                        String remaining = escapeSQL(token.substring(1,
                                    token.length() - 1), serverSupportsConvertFn);

                        buf.append(remaining);

                        buf.append('}');

                        token = buf.toString();
                    }
                }
                 // nested escape code

				// Compare to tokens with _no_ whitespace
				String collapsedToken = removeWhitespace(token);
				
                /*
                 * Process the escape code
                 */
                if (StringUtils.startsWithIgnoreCase(collapsedToken, "{escape")) {
                    try {
                        StringTokenizer st = new StringTokenizer(token, " '");
                        st.nextToken(); // eat the "escape" token
                        escapeSequence = st.nextToken();

                        if (escapeSequence.length() < 3) {
                            throw new java.sql.SQLException(
                                "Syntax error for escape sequence '" + token
                                + "'", SQLError.SQL_STATE_SYNTAX_ERROR);
                        }

                        escapeSequence = escapeSequence.substring(1,
                                escapeSequence.length() - 1);
                        replaceEscapeSequence = true;
                    } catch (java.util.NoSuchElementException e) {
                        throw new java.sql.SQLException(
                            "Syntax error for escape sequence '" + token + "'",
                            SQLError.SQL_STATE_SYNTAX_ERROR);
                    }
                } else if (StringUtils.startsWithIgnoreCase(collapsedToken, "{fn")) {
                	
                	
                    
                    int startPos = token.toLowerCase().indexOf("fn ") + 3;
                    int endPos = token.length() - 1; // no }
                    
                    String fnToken = token.substring(startPos, endPos);
                    
                    // We need to handle 'convert' by ourselves
                    
                    if (StringUtils.startsWithIgnoreCaseAndWs(fnToken, "convert")) {
                    	newSql.append(processConvertToken(fnToken, serverSupportsConvertFn));
                    } else {
                    	// just pass functions right to the DB
                    	newSql.append(fnToken);
                    }
                } else if (StringUtils.startsWithIgnoreCase(collapsedToken, "{d")) {
                    int startPos = token.indexOf('\'') + 1;
                    int endPos = token.lastIndexOf('\''); // no }

                    if ((startPos == -1) || (endPos == -1)) {
                        throw new java.sql.SQLException(
                            "Syntax error for DATE escape sequence '" + token
                            + "'", SQLError.SQL_STATE_SYNTAX_ERROR);
                    }

                    String argument = token.substring(startPos, endPos);

                    try {
                        StringTokenizer st = new StringTokenizer(argument, " -");
                        String year4 = st.nextToken();
                        String month2 = st.nextToken();
                        String day2 = st.nextToken();
                        String dateString = "'" + year4 + "-" + month2 + "-"
                            + day2 + "'";
                        newSql.append(dateString);
                    } catch (java.util.NoSuchElementException e) {
                        throw new java.sql.SQLException(
                            "Syntax error for DATE escape sequence '"
                            + argument + "'", SQLError.SQL_STATE_SYNTAX_ERROR);
                    }
                } else if (StringUtils.startsWithIgnoreCase(collapsedToken, "{ts")) {
                    int startPos = token.indexOf('\'') + 1;
                    int endPos = token.lastIndexOf('\''); // no }

                    if ((startPos == -1) || (endPos == -1)) {
                        throw new java.sql.SQLException(
                            "Syntax error for TIMESTAMP escape sequence '"
                            + token + "'", SQLError.SQL_STATE_SYNTAX_ERROR);
                    }

                    String argument = token.substring(startPos, endPos);

                    try {
                        StringTokenizer st = new StringTokenizer(argument,
                                " .-:");
                        String year4 = st.nextToken();
                        String month2 = st.nextToken();
                        String day2 = st.nextToken();
                        String hour = st.nextToken();
                        String minute = st.nextToken();
                        String second = st.nextToken();

                        /*
                         * For now, we get the fractional seconds
                         * part, but we don't use it, as MySQL doesn't
                         * support it in it's TIMESTAMP data type
                         *
                        String fractionalSecond = "";

                        if (st.hasMoreTokens()) {
                            fractionalSecond = st.nextToken();
                        }
                        */
                        /*
                         * Use the full format because number format
                         * will not work for "between" clauses.
                         *
                         * Ref. Mysql Docs
                         *
                         * You can specify DATETIME, DATE and TIMESTAMP values
                         * using any of a common set of formats:
                         *
                         * As a string in either 'YYYY-MM-DD HH:MM:SS' or
                         * 'YY-MM-DD HH:MM:SS' format.
                         *
                         * Thanks to Craig Longman for pointing out this bug
                         */
                        newSql.append("'").append(year4).append("-")
                              .append(month2).append("-").append(day2)
                              .append(" ").append(hour).append(":")
                              .append(minute).append(":").append(second).append("'");
                    } catch (java.util.NoSuchElementException e) {
                        throw new java.sql.SQLException(
                            "Syntax error for TIMESTAMP escape sequence '"
                            + argument + "'", SQLError.SQL_STATE_SYNTAX_ERROR);
                    }
                } else if (StringUtils.startsWithIgnoreCase(collapsedToken, "{t")) {
                    int startPos = token.indexOf('\'') + 1;
                    int endPos = token.lastIndexOf('\''); // no }

                    if ((startPos == -1) || (endPos == -1)) {
                        throw new java.sql.SQLException(

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久久久久中文| 欧美www视频| 欧美一卡二卡在线| 国产精品欧美一级免费| 丝袜美腿亚洲色图| 99精品久久免费看蜜臀剧情介绍| 91精品国产全国免费观看| 中文无字幕一区二区三区| 日本强好片久久久久久aaa| 丰满少妇久久久久久久| 91精品国产综合久久精品| 亚洲精品国产精华液| 国产suv精品一区二区6| 日韩欧美一二三四区| 亚洲小说欧美激情另类| 91蜜桃免费观看视频| 日本一区二区三区电影| 久久国产精品无码网站| 91麻豆精品国产91| 亚洲一区二区欧美日韩| 色综合婷婷久久| 国产精品福利影院| 高清不卡一区二区在线| 久久久亚洲精品石原莉奈| 蜜臀av亚洲一区中文字幕| 欧美视频三区在线播放| 亚洲综合色网站| 91福利区一区二区三区| 亚洲蜜臀av乱码久久精品蜜桃| 国产成人免费视频精品含羞草妖精| 91精品国产综合久久精品app| 亚洲一区免费观看| 欧美三级韩国三级日本一级| 亚洲黄色性网站| 在线亚洲人成电影网站色www| 亚洲色图另类专区| 色综合久久久久久久| 亚洲精品乱码久久久久久| 91色在线porny| 一区二区在线免费| 精品视频在线免费| 亚洲成a人v欧美综合天堂| 欧美日韩精品系列| 免费成人在线观看视频| www国产成人| 高清久久久久久| 亚洲色图清纯唯美| 欧美日韩在线免费视频| 视频在线观看91| 日韩午夜电影av| 粉嫩aⅴ一区二区三区四区五区| 久久久久久久久岛国免费| 成人免费看黄yyy456| 亚洲图片你懂的| 欧美久久高跟鞋激| 精品综合久久久久久8888| 欧美国产日韩a欧美在线观看| av中文一区二区三区| 亚洲一区二区三区不卡国产欧美| 欧美一区二区日韩| 国产成a人无v码亚洲福利| 一区二区三区欧美亚洲| 91精品国产91综合久久蜜臀| 国产福利91精品一区二区三区| 亚洲欧美国产毛片在线| 日韩欧美国产午夜精品| 国产成人在线影院| 一区二区三区**美女毛片| 欧美一卡二卡三卡四卡| aaa欧美日韩| 青青草成人在线观看| 国产精品婷婷午夜在线观看| 欧美色电影在线| 成人午夜在线播放| 日日骚欧美日韩| 亚洲国产精品激情在线观看 | 国产精品不卡在线| 欧美久久婷婷综合色| 成人网在线播放| 日韩不卡在线观看日韩不卡视频| 国产蜜臀97一区二区三区| 欧美日韩1区2区| 成人午夜大片免费观看| 日本va欧美va精品发布| 亚洲欧洲成人精品av97| 日韩欧美电影一区| 91九色02白丝porn| 高清不卡在线观看| 久草精品在线观看| 午夜电影一区二区| 亚洲区小说区图片区qvod| 国产亚洲精品免费| 在线成人小视频| 在线免费观看日韩欧美| 国产精品影音先锋| 精品一区二区三区在线观看| 亚洲国产精品视频| 亚洲激情中文1区| 国产精品福利一区| 中文字幕欧美国产| 精品电影一区二区| 日韩精品一区二区三区在线观看| 欧美三级三级三级| 91久久精品网| 色国产精品一区在线观看| 波多野结衣中文字幕一区 | 亚洲一二三区视频在线观看| 国产精品视频麻豆| 国产日韩v精品一区二区| 26uuu国产在线精品一区二区| 91精品国产免费| 欧美无砖专区一中文字| 欧洲在线/亚洲| 欧美亚洲高清一区二区三区不卡| 色综合久久综合| 色婷婷国产精品| 在线观看亚洲精品视频| 在线观看不卡一区| 精品1区2区3区| 欧美日韩你懂得| 欧美一卡2卡三卡4卡5免费| 日韩一区二区免费视频| 欧美一卡二卡在线| www成人在线观看| 国产亲近乱来精品视频| 国产精品拍天天在线| 亚洲天堂av一区| 亚洲综合成人在线视频| 亚洲成人精品一区二区| 日韩av成人高清| 国产一区二区三区香蕉| 风流少妇一区二区| 91黄色免费网站| 在线电影欧美成精品| 亚洲精品一区二区三区在线观看 | 六月丁香婷婷色狠狠久久| 日本美女一区二区三区视频| 久久精品av麻豆的观看方式| 精品一区二区久久| av电影在线观看一区| 色屁屁一区二区| 欧美日韩在线不卡| 精品国产精品网麻豆系列| 日本一区二区久久| 亚洲超碰精品一区二区| 麻豆精品在线播放| 岛国av在线一区| 欧美在线观看一二区| 日韩一区二区不卡| 国产精品色呦呦| 日韩国产在线观看| 成人黄页在线观看| 777久久久精品| 国产精品久99| 日韩不卡一区二区三区 | 6080yy午夜一二三区久久| 精品福利一二区| 亚洲午夜久久久久久久久电影网 | 色婷婷久久一区二区三区麻豆| 欧美精品免费视频| 国产精品麻豆视频| 日韩电影在线免费看| 国产91丝袜在线18| 欧美图区在线视频| 国产精品女主播av| 欧美a一区二区| 色综合av在线| 久久精品夜夜夜夜久久| 午夜精彩视频在线观看不卡| 成人黄色av电影| 日韩欧美成人激情| 亚洲第一激情av| 99精品1区2区| 国产日韩三级在线| 美洲天堂一区二卡三卡四卡视频| 99久久综合色| 久久综合狠狠综合久久激情| 午夜成人免费视频| 91成人在线观看喷潮| 欧美激情艳妇裸体舞| 国产在线国偷精品产拍免费yy| 欧美丝袜丝交足nylons| 亚洲婷婷国产精品电影人久久| 韩国精品久久久| 日韩视频国产视频| 婷婷综合另类小说色区| 欧美亚洲一区二区在线观看| 一区在线观看视频| 国产精品超碰97尤物18| 国产精品欧美久久久久无广告| 亚洲123区在线观看| 一本久久a久久精品亚洲| 国产欧美一区二区三区鸳鸯浴| 免费观看在线综合| 91精品国产一区二区三区蜜臀| 中文字幕日韩一区| av亚洲精华国产精华精| 久久女同性恋中文字幕| 精品一区二区在线视频| 91精品国产综合久久福利|