Java SQL查询的问题

Java SQL查询的问题,java,android,sql,Java,Android,Sql,我在SQL查询中遇到问题。问题是我正在查询企业名称的外部数据库,有些名称类似于“Martha”(包括撇号)。因为我是从android应用程序进行查询,所以查询字符串如下所示: String query = "Select * from Advertiser where AdvName= '" + name + "';"; 那么,我是否可以忽略或更改查询中的撇号 提前谢谢 在PLSQL中,您应该在输入字段中使用double',意思是Martha's=>Martha's: 重要备注: 出于安全目

我在SQL查询中遇到问题。问题是我正在查询企业名称的外部数据库,有些名称类似于“Martha”(包括撇号)。因为我是从android应用程序进行查询,所以查询字符串如下所示:

String query = "Select * from Advertiser where AdvName= '" + name + "';";
那么,我是否可以忽略或更改查询中的撇号


提前谢谢

在PLSQL中,您应该在输入字段中使用double
'
,意思是Martha's=>Martha's:


重要备注:
出于安全目的(为了避免sql注入),您应该避免以这种方式创建查询,最好使用prepared语句并设置如下参数:

String query = "Select * from Advertiser where AdvName= ? ";
PreparedStatement  st   = conn.prepareStatement(query);
st.setString(1,name);

在PLSQL中,您应该在输入字段中使用double
'
,意思是Martha's=>Martha's:


重要备注:
出于安全目的(为了避免sql注入),您应该避免以这种方式创建查询,最好使用prepared语句并设置如下参数:

String query = "Select * from Advertiser where AdvName= ? ";
PreparedStatement  st   = conn.prepareStatement(query);
st.setString(1,name);

这就是为什么在执行参数化查询时应始终使用prepared语句的原因之一:

String sql = "select * from Advertiser where AdvName = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, name);
ResultSet rs = stmt.executeQuery();
JDBC驱动程序将为您转义引号,这也将防止攻击

当必须使用不同的参数多次执行同一查询时,预处理语句也具有性能优势

请在中阅读有关准备好的语句的更多信息


旁注:你不应该有一个

这就是为什么在执行参数化查询时应始终使用prepared语句的原因之一:

String sql = "select * from Advertiser where AdvName = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, name);
ResultSet rs = stmt.executeQuery();
JDBC驱动程序将为您转义引号,这也将防止攻击

当必须使用不同的参数多次执行同一查询时,预处理语句也具有性能优势

请在中阅读有关准备好的语句的更多信息


旁注:你不应该有一个
在查询结束时。

是否有任何与prepared语句等效但适用于android的语句?是否有任何与prepared语句等效但适用于android的语句?