【发布时间】:2016-01-12 08:28:24
【问题描述】:
我想从表中读取数据,但我收到错误,因为我要比较的值可能包含这样的词:abcd l'jdmd
我是这样尝试的:
String s = "select ref(ad) from adresse_tab ad where ad.ort='"+rs.getString(11)+"' and ad.plz='"+rs.getString(13)+"' and ad.land='"+rs.getString(14)+"'";
PreparedStatement stmt5 = nsdCon.prepareStatement(s);
ResultSet rs5 = stmt5.executeQuery();
查询可能如下所示:
select ref(ad)
from adresse_tab ad
where ad.ort='Frankfurt am Main'
and ad.plz='65301'
and ad.land='Deutschland'
and ad.strasse='almundo l'tare '
所以这个查询中的问题是这个比较:
ad.strasse='almundo l'tare '
如何处理 SQL 查询中的保留字符?
【问题讨论】:
-
使用preparedStatement.setString .
-
你刚刚得到的是一个sql注入的例子,考虑使用参数而不是字符串连接,这将转义你输入中的任何特殊字符
标签: java sql oracle object-oriented-database