我對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. 轉義撇號
- 2. JQuery轉義撇號和雙撇號?
- 3. 使用Gsub轉義撇號
- 4. 用Gsub從Word轉義撇號
- 5. MySql命令行未轉義撇號
- 6. C# - 無法爲JSON轉義撇號
- 7. 在XML轉義撇號屬性
- 8. 在字符文字中轉義撇號
- 9. 如何用雙撇號替換撇號?
- 10. 用雙撇號取代撇號
- 11. 右單撇號與撇號?
- 12. SQL - JAVA撇號問題
- 13. Excel轉義單元格值中的引號或撇號
- 14. 如何將C#中的撇號轉換爲撇號?
- 15. 在java中替換非撇號除撇號外
- 16. 將PHP數組轉換爲JSON時動態轉義撇號
- 17. XSLT - 用輸出中的轉義文本替換撇號
- 18. ASP.NET - 如何用斜槓轉義撇號以插入數據庫
- 19. 如何轉義在SQL查詢中使用的撇號字符?
- 20. Java:使用String.indexOf()檢查撇號字符
- 21. 用Java中的撇號提取href值
- 22. 在MySQL查詢中使用撇號Java
- 23. aspx文件中的撇號撇號
- 24. 撇號和NSString的反向撇號
- 25. 撇號內部撇號斷言
- 26. Java語法轉義符號?
- 27. XStream撇號將Java對象轉換爲XML的問題
- 28. XSL - 在xsl期間轉義撇號:測試時
- 29. php轉義陣列中的撇號問題
- 30. bash,在bash中的SQL語句中轉義撇號
「餅乾的關鍵是撇號」 - FZ – 2009-11-04 21:09:37