gpt4 book ai didi

java - 在 Java 中为 MySQL 转义字符串

转载 作者:行者123 更新时间:2023-11-29 07:10:01 25 4
gpt4 key购买 nike

我需要使用 Java 中的字符串列表对 MySQL 数据库执行大型 SQL 查询,例如:

SELECT * FROM db_table WHERE id IN (....);

不幸的是,输入 API 在这里有点限制,我只得到一个字符串列表作为输入。

通常我只会使用参数化查询,但这不允许我传递逗号分隔列表,因此类似下面的内容将不起作用:

SELECT * FROM db_Table WHERE id IN (?);
preparedStaement.Set(1, "A,B,C,D,E");

我看了一下这个帖子:PreparedStatement IN clause alternatives?

不幸的是,由于我没有对数据库的写入权限,所以我无法创建临时表,因此没有任何更有创意的选项可以使用。

那么 - 有什么想法吗?我只关心作为底层源的 MySQL,所以如果解决方案特定于 MySQL,那很好。

提前致谢

编辑:单独转义每个字符串会很好——但是在 Java 中是什么方法呢?我不太幸运地找到了一个,我只看到了 apache 中的一些东西,但我无法使用。

-- 丹

最佳答案

您有两个明显的选择:

  1. 动态构建查询及其输入。也就是说,对于您需要包含的每个字符串,添加一个 ?在将查询传递给 PreparedStatement 之前添加到查询。

    SELECT * FROM table WHERE id = ?或者 ID =?或者 ID =?或者 ID =? ...

  2. 不要在这里使用绑定(bind)。单独转义字符串并将它们直接放入查询中。

...可能还有一些我没有想到的不太明显的选择。

关于java - 在 Java 中为 MySQL 转义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5176109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com