如何用 Postgres 替换 Java 中的单引号?
如何用 Postgres 替换 Java 中的单引号?
select * from where id in ('<45646300.KDSFJJSKJSDF95'fdgdfgdfgd>', 'fdgdfgdg');
我总是使用像这样的参数
select * from where id = ?;
,但在这种情况下我遇到了问题,我有“in”语句并将字符串传递给它。
我希望替换所有危险字符
How to replace single quote in Java with Postgres?
select * from where id in ('<45646300.KDSFJJSKJSDF95'fdgdfgdfgd>', 'fdgdfgdg');
I always use params like
select * from where id = ?;
But in this case i have problem, where i have 'in' statement with string passed to it.
I wish to replace all dangerous chars
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
最好继续使用PreparedStatement,而不是手动转义字符。
对于
IN
子句,您可以动态生成具有适当数量的?
的查询。It would be better to continue using
PreparedStatement
s rather than to escape characters manually.In the case of
IN
clause you can generate a query with appropriate number of?
s dynamically.Apache commons API 提供了多种方法来删除特定语言(例如 CSS、Javascript SQL 等)的危险字符...
看看这个是否有帮助:http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringEscapeUtils.html< /a>
Apache commons API provides multiples ways to remove dangerous chars for specific languages such as CSS, Javascript SQL, etc...
Take a look at this if it helps : http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringEscapeUtils.html
对单引号使用标准 SQL 引用:
因此任何嵌入的单引号都需要写入两次。
Use the standard SQL quoting for single quotes:
So any embedded single quote needs to be written twice.
你尝试过吗?
Did you try?
javaranch 网站上有一个页面解释了不同的选项这里
There's a page explaining the different options over here on the javaranch site