gpt4 book ai didi

java - where().eq ("colName", new SelectArg()) 是什么意思?

转载 作者:行者123 更新时间:2023-12-01 07:21:57 25 4
gpt4 key购买 nike

在我们的应用程序中运行一些旧代码时,我遇到了这样的情况:

queryBuilder.selectRaw("myFirstColumnName");
queryBuilder.where().eq("mySecondColumnName", new SelectArg());

其中queryBuildercom.j256.ormlite.stmt.QueryBuilder。现在,我不知道这如何映射到 SQL,但我想象一下:

SELECT myFirstColumnName
WHERE mySecondColumnName = SELECT *

我以前从未见过,更不用说使用过。 这样做的目的是什么?这可能会尝试做什么,结果会是什么?

最佳答案

很好的答案@novak。只是添加一些信息:

queryBuilder.where().eq("mySecondColumnName", new SelectArg());

这是一个有点奇怪的模式。 SelectArg 的典型用法是创建一个变量,以便我们稍后可以设置该值。例如:

SelectArg arg = new SelectArg();
queryBuilder.where().eq("mySecondColumnName", arg);
...
arg.setValue("column1");

有时我们预先知道参数的值,但我们仍然想使用 SQL ? 机制,因此我们可以这样做:

queryBuilder.where().eq("mySecondColumnName", new SelectArg("column1"));

例如,当我们想要保护自己免受 SQL injection attacks 的侵害时,我们就会这样做或者如果我们使用具有 SQL 特殊字符(如引号)的值。

关于java - where().eq ("colName", new SelectArg()) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34212641/

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