Derby DB—在Java中将字符串保存为CLOB时要转义的字符列表
由于商业许可证问题,我从MySQL切换到Derby DB。所以现在我必须转义特殊字符,比如单引号等等,这与MySQL有很大不同。因此,在将字符串作为CLOB数据存储到Derby DB之前,我要做的是:Derby DB—在Java中将字符串保存为CLOB时要转义的字符列表,java,database,escaping,derby,Java,Database,Escaping,Derby,由于商业许可证问题,我从MySQL切换到Derby DB。所以现在我必须转义特殊字符,比如单引号等等,这与MySQL有很大不同。因此,在将字符串作为CLOB数据存储到Derby DB之前,我要做的是: public static String escapeSQL(String text) { return text .replace("\'", "\''"); //And the rest of MUST escap
public static String escapeSQL(String text) {
return text
.replace("\'", "\''");
//And the rest of MUST escape characters
}
所以我的问题是——这个清单应该如何完成?必须转义的所有字符是什么?这是关于解析程序中的字符串文字,而不是关于所使用的列类型。避免此类问题的最佳方法是使用预先准备好的语句。是什么让您认为有必须转义的字符?因为这里会出现语法错误:
st.executeUpdate(“INSERT-INTO-myTable(“someColumn1,someColumn2”)值('ok','这将导致“语法错误”)代码>改用PreparedStatement
。您不仅可以不再担心转义特殊字符,而且您的应用程序也不会那么容易受到SQL注入的攻击(您应该已经在MySQL btw中这样做了)