如何用Postgres替换Java中的单引号?
如何用Postgres替换Java中的单引号如何用Postgres替换Java中的单引号?,java,postgresql,Java,Postgresql,如何用Postgres替换Java中的单引号 select * from where id in ('<45646300.KDSFJJSKJSDF95'fdgdfgdfgd>', 'fdgdfgdg'); 但在本例中,我遇到了一个问题,我有一个带字符串的“in”语句传递给它 我想替换所有危险的字符你试过了吗 select * from TABLE_NAME where id in (?); 你试过了吗 select * from TABLE_NAME where id in (?
select * from where id in ('<45646300.KDSFJJSKJSDF95'fdgdfgdfgd>', 'fdgdfgdg');
但在本例中,我遇到了一个问题,我有一个带字符串的“in”语句传递给它
我想替换所有危险的字符你试过了吗
select * from TABLE_NAME where id in (?);
你试过了吗
select * from TABLE_NAME where id in (?);
有一页解释不同的选项有一页解释不同的选项最好继续使用
PreparedStatement
s,而不是手动转义字符
对于子句中的,您可以动态生成具有适当数量的?
的查询
String[] input = ...;
StringBuilder b = new StringBuilder();
b.append("select * from where id in (");
b.append("?"); // Assume that input contains at least one element
for (int i = 1; i < input.length; i++) b.append(", ?");
b.append(")");
PreparedStatement s = c.prepareStatement(b.toString());
for (int i = 0; i < input.length; i++) s.setString(i + 1, input[i]);
String[]输入=。。。;
StringBuilder b=新的StringBuilder();
b、 追加(“从中选择*id(”);
b、 append(“?”;//假设输入至少包含一个元素
对于(inti=1;i
最好继续使用PreparedStatement
s,而不是手动转义字符
对于
子句中的,您可以动态生成具有适当数量的?
的查询
String[] input = ...;
StringBuilder b = new StringBuilder();
b.append("select * from where id in (");
b.append("?"); // Assume that input contains at least one element
for (int i = 1; i < input.length; i++) b.append(", ?");
b.append(")");
PreparedStatement s = c.prepareStatement(b.toString());
for (int i = 0; i < input.length; i++) s.setString(i + 1, input[i]);
String[]输入=。。。;
StringBuilder b=新的StringBuilder();
b、 追加(“从中选择*id(”);
b、 append(“?”;//假设输入至少包含一个元素
对于(inti=1;i
Apache commons API提供了多种方法来删除特定语言(如CSS、Javascript SQL等)的危险字符
如果有用的话,请看一看这一点:Apache commons API提供了多种方法来删除特定语言(如CSS、Javascript SQL等)的危险字符
如果有帮助的话,请看一看:对单引号使用标准SQL引号:
select *
from the_table
where id in ('<45646300.KDSFJJSKJSDF95''fdgdfgdfgd>', 'fdgdfgdg');
选择*
从桌子上
其中id位于(“”,'fdgdfgdg');
因此,任何嵌入的单引号都需要编写两次 对单引号使用标准SQL引号:
select *
from the_table
where id in ('<45646300.KDSFJJSKJSDF95''fdgdfgdfgd>', 'fdgdfgdg');
选择*
从桌子上
其中id位于(“”,'fdgdfgdg');
因此,任何嵌入的单引号都需要编写两次 对。但我有一个数组或字符串,以“,”分隔。字符串参数=“aaa”、“bbb”、“ccc”。我不知道如何像这样传递它:prepStat.setString(1,myString);对但我有一个数组或字符串,以“,”分隔。字符串参数=“aaa”、“bbb”、“ccc”。我不知道如何像这样传递它:prepStat.setString(1,myString);最好提供一个表名。:)最好提供一个表名。:)