?/**
???? * 進行SQL字符串的規(guī)則化。
???? * 目前只處理將其中的'轉(zhuǎn)換為內(nèi)容,即加上轉(zhuǎn)義符。
???? */
??? public static String normalizeString(String sql){
??????? // 在null的情況下,返回"",以便插入數(shù)據(jù)庫。
??????? // 因為null在數(shù)據(jù)庫中插入后成為"null",不正確。
??????? if ( (null == sql) || ("".equals(sql)) )
??????????? return "";
??????? int lastIndex = sql.lastIndexOf("'");
??????? if ( lastIndex < 0 )
??????????? return sql;
??????? if ( 0 == lastIndex )
??????????? return "'" + sql;
??????? int[] sepIndexArray = new int[lastIndex + 1 + 2];
??????? sepIndexArray[0] = 0;
??????? int startIndex = -1;
??????? int sepIndex = 1;
??????? while ( (startIndex = sql.indexOf("'", startIndex + 1)) >= 0 )
??????????? sepIndexArray[sepIndex++] = startIndex;
??????? sepIndexArray[sepIndex] = sql.length();
??????? String result = sql.substring(sepIndexArray[0], sepIndexArray[1]);
??????? for ( int i = 1; i < sepIndex; i++ )
??????????? result = result
??????????????? + "'" + sql.substring(sepIndexArray[i], sepIndexArray[i + 1]);
??????? return result;
??? }