public static String string2DBString(String s)
{
if (s == null)
{
return "";
} StringBuffer sb = new StringBuffer(20); for (int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
if (c == '\\')
{
sb.append("\\\\");
}
else if (c == '\"')
{
sb.append("\\\"");
}
else if (c == '\'')
{
sb.append("\\\'");
}
else
{
sb.append(c);
}
} return new String(sb);
}这个方法是在写db2数据库sql语句的时候,对sql语句的一个处理,问一下,这么处理是什么意思呢?这个对字符的转换有什么作用呢?为什么要这么处理呢?
{
if (s == null)
{
return "";
} StringBuffer sb = new StringBuffer(20); for (int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
if (c == '\\')
{
sb.append("\\\\");
}
else if (c == '\"')
{
sb.append("\\\"");
}
else if (c == '\'')
{
sb.append("\\\'");
}
else
{
sb.append(c);
}
} return new String(sb);
}这个方法是在写db2数据库sql语句的时候,对sql语句的一个处理,问一下,这么处理是什么意思呢?这个对字符的转换有什么作用呢?为什么要这么处理呢?
比如你的一个查询语句是:
String sqlStr="slect * from yourTable where ColumnName='"+str+"'";
如果你的str="aaa'a"含有'而且没转换,
那么sqlStr="slect * from yourTable where ColumnName='aaa'a"
看出问题所在了吧,"也是一样的有这错误。
而'\'在从数据库中读入读出则可能被当成转义字符。