if (!"".equals(docIdOfAttachmentList) && docIdOfAttachmentList != null) { string isextfile = "SELECT isextfile FROM docimagefile WHERE docid = ? AND imagefileid = ( SELECT MIN(imagefileid) FROM docimagefile WHERE docid = ?)"; for (int i = 0; i < docIdOfAttachmentList.size(); i++) { String tmptsql = "SELECT MAX(imagefileid) AS imagefileid FROM docimagefile WHERE docid=? AND (isextfile IS NULL OR isextfile='')GROUP BY id ORDER BY imagefileid DESC"; rs.executeQuery(tmptsql, docIdOfAttachmentList.get(i)); while (rs.next()) { imagegileIdOfAttachmentList.add(rs.getString("imagefileid")); } } } 先判断如果查出来的sql 中imagefileid是最小的而且 isextfile 等于1 则 获取 docimagefile 表下 docfiletype=12得所有值反之则按照当前的逻辑走 应该怎么写
时间: 2024-01-31 07:02:28 浏览: 137
java 中String.equals和==的比较
5星 · 资源好评率100%
以下是我对您提供的代码进行理解的结果:
首先,代码会检查变量 `docIdOfAttachmentList` 是否为空或为字符串类型的空值。如果不是,则会执行一些与数据库相关的操作。
在第一个查询语句中,代码会根据 `docIdOfAttachmentList` 中的值检索 `docimagefile` 表,并获取具有最小 `imagefileid` 值的行的 `isextfile` 列的值。
在第二个查询语句中,代码会根据 `docIdOfAttachmentList` 中的值检索 `docimagefile` 表,并获取具有最大 `imagefileid` 值的行的 `imagefileid` 列的值。
在这两个查询语句之后,代码使用 `while` 循环遍历结果集,并将 `imagefileid` 加入到 `imagegileIdOfAttachmentList` 中。
现在,根据您的描述,如果第一个查询语句返回的 `isextfile` 值为 1,则需要获取所有 `docid` 对应的 `docfiletype` 为 12 的值。如果不是,则按照当前的逻辑继续执行。
因此,您需要修改代码以添加适当的逻辑。您可以尝试以下代码:
```
if (!"".equals(docIdOfAttachmentList) && docIdOfAttachmentList != null) {
String isextfile = "SELECT isextfile FROM docimagefile WHERE docid = ? AND imagefileid = ( SELECT MIN(imagefileid) FROM docimagefile WHERE docid = ?)";
for (int i = 0; i < docIdOfAttachmentList.size(); i++) {
String tmptsql = "";
rs.executeQuery(isextfile, docIdOfAttachmentList.get(i), docIdOfAttachmentList.get(i));
if (rs.next() && rs.getInt("isextfile") == 1) {
tmptsql = "SELECT MAX(imagefileid) AS imagefileid FROM docimagefile WHERE docid=? AND docfiletype=12 GROUP BY id ORDER BY imagefileid DESC";
} else {
tmptsql = "SELECT MAX(imagefileid) AS imagefileid FROM docimagefile WHERE docid=? AND (isextfile IS NULL OR isextfile='') GROUP BY id ORDER BY imagefileid DESC";
}
rs.executeQuery(tmptsql, docIdOfAttachmentList.get(i));
while (rs.next()) {
imagegileIdOfAttachmentList.add(rs.getString("imagefileid"));
}
}
}
```
在这个修改后的代码中,我们首先执行第一个查询语句,然后检查 `isextfile` 的值是否为 1。如果是,我们会将 `tmptsql` 设置为检索 `docid` 对应的 `docfiletype` 为 12 的所有行的 `imagefileid` 值。如果不是,我们将 `tmptsql` 设置为检索 `docid` 对应的所有行的 `imagefileid` 值。
然后,我们执行第二个查询语句,并根据结果集中的行将 `imagefileid` 值添加到 `imagegileIdOfAttachmentList` 列表中。
我希望这可以帮助您解决问题。
阅读全文