java 生成mysql insert 语句 时候,转义处理工具类
时间: 2023-11-22 16:53:34 浏览: 108
可以使用如下的工具类来处理转义:
```java
public class MySqlStringUtil {
/**
* 将字符串中的特殊字符转义
*
* @param str 待转义的字符串
* @return 转义后的字符串
*/
public static String escape(String str) {
if (str == null) {
return null;
}
StringBuilder sb = new StringBuilder(str.length() * 2);
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
switch (ch) {
case 0:
continue;
case '\n':
sb.append("\\n");
break;
case '\r':
sb.append("\\r");
break;
case '\\':
sb.append("\\\\");
break;
case '\'':
sb.append("\\'");
break;
case '\"':
sb.append("\\\"");
break;
case '\032':
sb.append("\\Z");
break;
case '\u00a5':
case '\u20a9':
// escape characters interpreted as backslash by mysql
sb.append('\\');
sb.append(ch);
break;
default:
sb.append(ch);
}
}
return sb.toString();
}
}
```
使用方法:
```java
String str = "I'm a string with ' and \\ characters";
String escapedStr = MySqlStringUtil.escape(str);
String insertSql = "insert into table_name (column1, column2) values ('" + escapedStr + "', 'value2')";
```
这样生成的 `insert` 语句中的特殊字符就都被转义了。
阅读全文