Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Postgres替换Java中的单引号?_Java_Postgresql - Fatal编程技术网

如何用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 (?

如何用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 (?);

有一页解释不同的选项

有一页解释不同的选项

最好继续使用
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);最好提供一个表名。:)最好提供一个表名。:)