/**
* 进行SQL字符串的规则化。
* 目前只处理将其中的'转换为内容,即加上转义符。
*/
public static String normalizeString(String sql){
// 在null的情况下,返回"",以便插入数据库。
// 因为null在数据库中插入后成为"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;
}