2015-04-28 14 views
1

我有一個Java類,我使用String串聯構建SOQL查詢。如何在Java代碼的SOQL查詢中正確地轉義特殊字符(如 - ')?

有沒有人可以建議逃脫SOQL特殊字符如單引號的任何最佳做法?

+0

好吧,那裏有String.escapeSingleQuotes()方法。 ex: c.lastname = String.escapeSingleQuotes(c.lastname); 相似問題: http://salesforce.stackexchange.com/questions/8505/how-to-use-the-escapesinglequotes-method –

+0

@ShailendraPatel我正在尋找一篇Java代碼,其中有關Salesforce Apex代碼的帖子。 –

回答

-1

對不起,我誤解了這個問題,我的不好。

這裏是解決方案:

1.使用準備好的聲明。

String data="a'b"; 
String stmt = " INSERT INTO student (column_name) VALUES (?)"; 
PreparedStatement statement= con.prepareStatement(stmt); 
statement.setString(1,data); 
statement.executeUpdate(); 

2.Escape單引號。單引號可以通過使用雙引號進行轉義。 ' - >''

String data="a'b"; 
String changedUserString = userString.replace("'","''"); 
String insertTableSQL = "INSERT INTO student (column_name) VALUES(" 
         +" '"+data+"')"; 
+0

你確定這是SOQL? Salesforce對象查詢語言? –

+0

可以使用String.escapeSingleQuotes方法或退格: \'Hello \'。 –

+0

@ShailendraPatel,OP正在使用Salesforce的Java綁定,並可能將SOQL字符串傳遞到Salesforce Enterprise wsdl的「查詢」方法中。我正在嘗試類似的事情。我還沒有遇到任何在Java端執行轉義的方法 - 我不認爲String.escapeSingleQuotes方法可用於Java開發人員。我期望不得不根據文檔編寫我自己的轉義方法http://www.salesforce.com/us/developer/docs/soql_sosl/Content/sforce_api_calls_soql_select_quotedstringescapes.htm – simonh