如何正确地从Java代码中转义SOQL查询中的特殊字符(如-';)?

如何正确地从Java代码中转义SOQL查询中的特殊字符(如-';)?,java,regex,string,salesforce,soql,Java,Regex,String,Salesforce,Soql,我有一个Java类,在这个类中,我使用String连接构造SOQL查询 有没有什么最佳实践可以建议人们避开SOQL特殊字符,如单引号?对不起,我误解了这个问题,我的错 以下是解决方案: 1.使用事先准备好的报表 String data="a'b"; String stmt = " INSERT INTO student (column_name) VALUES (?)"; PreparedStatement statement= con.prepareStatement(stmt); state

我有一个Java类,在这个类中,我使用
String
连接构造SOQL查询


有没有什么最佳实践可以建议人们避开SOQL特殊字符,如单引号?

对不起,我误解了这个问题,我的错

以下是解决方案:

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.转义单引号。可以使用双单引号对单引号进行转义。“-->”


对不起,我误解了这个问题,我的错

以下是解决方案:

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.转义单引号。可以使用双单引号对单引号进行转义。“-->”


这里有一个String.escapeSingleQuotes()方法。例如:c.lastname=String.escapeSingleQuotes(c.lastname);类似的问题:@shailendrappel我正在寻找一个Java代码,帖子中谈到了Salesforce Apex代码。好吧,这里有String.escapeSingleQuotes()方法。例如:c.lastname=String.escapeSingleQuotes(c.lastname);类似的问题:@ShailendraPatel我正在寻找一个Java代码,文章中讨论了Salesforce Apex代码。你确定这是SOQL吗?Salesforce对象查询语言?可以使用String.escapeSingleQuotes方法,也可以使用backspace:\'Hello\'。@Shailendrappel,OP正在为Salesforce使用Java绑定,并且可能会将SOQL字符串传递到Salesforce企业wsdl的'Query'方法中。我也在尝试类似的事情。我还没有遇到任何在Java端执行转义的方法——我认为String.escapeSingleQuotes方法对Java开发人员不可用。我希望必须根据这里的文档编写自己的转义方法。您确定这是SOQL吗?Salesforce对象查询语言?可以使用String.escapeSingleQuotes方法,也可以使用backspace:\'Hello\'。@Shailendrappel,OP正在为Salesforce使用Java绑定,并且可能会将SOQL字符串传递到Salesforce企业wsdl的'Query'方法中。我也在尝试类似的事情。我还没有遇到任何在Java端执行转义的方法——我认为String.escapeSingleQuotes方法对Java开发人员不可用。我希望必须根据这里的文档编写自己的转义方法