gpt4 book ai didi

java - 在 JAVA 中生成 SQL 查询的函数

转载 作者:行者123 更新时间:2023-11-29 12:05:14 24 4
gpt4 key购买 nike

我想请求您的帮助。

我在创建一个使用列列表生成 SQL 查询语句的函数时遇到问题。

详细信息如下:示例列有:IDNAMEADDRESS

示例函数/方法是:

private void createQuery(String[] columns) {
StringBuffer whereClause = new StringBuffer();
for(int i = 0, n = columns.length; i < n; ++i) {
whereClause.append(columns[i]);
doAppendAnd(whereClause);
}
}

private void doAppendOrAnd(StringBuffer whereClause) {
whereClause.append('AND');
}

但是,这里的问题是,我不希望 ADDRESS 列包含在查询中。如果在列表的最后找到 ADDRESS,它将产生:“(ID = 1) AND (NAME = '123') AND”,这会导致 SQL 错误。

最佳答案

通常的方法是在术语之前写分隔符,并将其从空更改为第一个之后的内容:

private void createQuery(String[] columns) {
StringBuilder whereClause = new StringBuilder();
String sep="";
for(int i = 0, n = columns.length; i < n; ++i) {
if (shouldselect(columns[i]){
whereClause.append(sep);
sep=" AND ";
whereClause.append(columns[i]);
}
}
}

这将确保您只在已经写了一个术语并且正在写另一个术语时才写 AND。当然,您可以根据自己的条件编写 shouldSelect 方法。

(也可以使用 StringBuilder,因为您不需要 StringBuffer 的同步)。

关于java - 在 JAVA 中生成 SQL 查询的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31595871/

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