2009-10-21 25 views

回答

8

不要使用正則表達式。使用一個數據庫庫來爲你轉義事物,並讓它處理這種

+2

例如...任何帶有PreparedStatement或PreparedCall的JDBC驅動程序。 – Powerlord 2009-10-21 13:45:36

+1

那麼我們該如何使用數據庫庫呢?以及我通過perl使用正則表達式之前做了這件事情,但現在我想在java中插入記錄之前在java中使用這個東西。 – lakhaman 2009-10-21 13:53:47

+0

@lakhaman:使用準備好的語句,並將您的(普通)字符串值作爲參數綁定。簡單,比試圖推出自己的正則表達式更可能是正確的。以Jesper的答案爲例。 – 2009-10-21 14:05:30

4

不要試圖做這讓自己的JDBC驅動程序處理它,通過使用PreparedStatement,而不是串聯使用字符串自己的SQL語句例:。

Connection conn = ...; // Database connection 

PreparedStatement ps = conn.prepareStatement("INSERT INTO MYTABLE (NAME, AGE) VALUES (?, ?)"); 

ps.setString(1, "Jesper"); 
ps.setInt(2, 38); 

ps.executeUpdate(); 

如果使用PreparedStatement, JDBC驅動程序將負責正確地爲所使用的數據庫的品牌和版本轉換插入的值。

相關問題