我对Java还是有点新,并试图将数据插入数据库。插入包含's'的字符串时出现错误,因此我的最终结果将是转义撇号。我该如何完成?用Java转义撇号
回答
StringEscapeUtils.escapeSql(yourstring);
注意:作为共享郎3.0:
StringEscapeUtils.escapeSql
这是一个令人误解的方法,只处理最简单的可能的SQL案例。由于SQL不是Lang的重点,所以维护这种方法没有意义。
取决于数据库,但您可以在SqlServer中使用''。
编辑:在MySQL中,你可以使用双撇号或反斜线:http://www.faqts.com/knowledge_base/view.phtml/aid/630
双撇号的Postgres – 2009-11-04 18:33:18
我会在评论与詹姆斯同意:使用准备好的语句。更好的长期解决方案。 – 2009-11-04 18:34:29
这个问题真的不是Java而是底层数据库。最有可能的是你像这样串起你的参数:
String sql = "select * from sometable where somefield = " + someObject.getSomeField();
不这样做。改为使用PreparedStatement。
如果这是一个需要关注这些事情的应用程序,那么它具有防止SQL注入攻击的附加优势。
+1:它不仅可以帮助您避免SQL注入攻击,还可以简化在SQL语句(Date,InputStream等)中设置Java对象,并且在技术上也更高性能(在DB预编译)。 – BalusC 2009-11-04 18:54:40
我假设您使用的是java.sql.Statement,并使用String调用executeQuery方法。这很糟糕,因为可以执行SQL注入。您应该使用java.sql.PreparedStatement来代替,然后您可以将任何您想要的字符串设置为参数,并且您不会遇到问题。
例如:
PreparedStatement pstmt = con.prepareStatement("UPDATE MY_TABLE SET TEXT_FIELD = ?");
pstmt.setString(1, "any String 'will work here!");
- 1. JQuery转义撇号和双撇号?
- 2. 用Gsub从Word转义撇号
- 3. 在字符文字中转义撇号
- 4. C# - 无法为JSON转义撇号
- 5. 在XML转义撇号属性
- 6. 如何用双撇号替换撇号?
- 7. Excel转义单元格值中的引号或撇号
- 8. 将PHP数组转换为JSON时动态转义撇号
- 9. 如何转义在SQL查询中使用的撇号字符?
- 10. XSLT - 用输出中的转义文本替换撇号
- 11. 撇号和NSString的反向撇号
- 12. aspx文件中的撇号撇号
- 13. 撇号内部撇号断言
- 14. XStream撇号将Java对象转换为XML的问题
- 15. ORA-00917在sql查询中转义撇号
- 16. 在PHP的json_encode截断之前转义JSON撇号?
- 17. 转义序列在MATLAB中显示撇号
- 18. Qt:lupdate正在将撇号转换为'
- 19. 撇号转换为正确的文本?
- 20. XSLT/XML:转换撇号的空间
- 21. 如何使用撇号插件在symfony 1.4应用程序中启用转义?
- 22. jQuery post()撇号如何将撇号自动转换为html数字实体?
- 23. Java Swt浏览器和撇号
- 24. Java中的HTML实体解码:撇号
- 25. Java StringBuffer不能打印出撇号
- 26. SQL撇号
- 27. 逃生撇号
- 28. 撇号的ProcessBuilder
- 29. 与撇号
- 30. 额外撇号
“饼干的关键是撇号” - FZ – 2009-11-04 21:09:37