gpt4 book ai didi

具有 *ANY* 标准的 Java SQL 准备语句

转载 作者:行者123 更新时间:2023-11-29 06:10:38 24 4
gpt4 key购买 nike

认识一下 ps,一个完成这项工作的简单的PreparedStatement:

PreparedStatement ps = cnx.prepareStatement( "SELECT * FROM mytable WHERE ref=? AND time=>? AND time<?");

我需要添加 3 个可选标准(C1、C2、C3)。为了清楚起见,它们可能不是基于运行时参数所必需的。
强力告诉我我可以编写 9 个准备好的语句来涵盖所有可能性。但我真正想写的是:

SELECT * FROM mytable WHERE ref=? AND time=>? AND time<? AND C1=? AND C2=? AND C3=?;

并在执行语句之前使用 setInt(5, "ANY") 或ignoreParameter(5) 等技巧
有这样的事吗?

最佳答案

不,没有。您需要动态地编写查询。

不过,无需创建所有组合。如果定义了参数,只需在查询中附加一个额外的 "and c1 = ?" 即可。

有一些 API 可以为您执行此操作。参见 http://www.jooq.org/例如。

关于具有 *ANY* 标准的 Java SQL 准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9336414/

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