当前位置: 首页 > 面试题库 >

在结果集中重复检索返回null

冷正青
2023-03-14
问题内容

ResultSet.getString在第一次调用它返回值但第二次返回null的地方遇到问题(这没有关闭结果集或sql连接)

if (rs.getString(i) == null) {
    properties.setProperty(metaData.getColumnLabel(i), "");
} else {
    properties.setProperty(metaData.getColumnLabel(i), rs.getString(i));
}

当然,该代码很容易修复,可以避免第二次调用,rs.getString()但是我想理解的是为什么如果第一个未调用,则第二个返回null


问题答案:

从Javadoc:

为了获得最大的可移植性,应按从左到右的顺序读取每一行中的结果集列,并且每一列只能读取一次。

在后台,您正在消耗TCP流中的字节,因此不能两次检索相同的列值也就不足为奇了。



 类似资料:
  • 问题内容: 我正在尝试创建一种方法,从中可以查询数据库并检索整个表。 目前,如果我使用这些数据只是正常工作 中 的方法。但是,我希望该方法返回结果。 我正在了解当前代码。 我该如何实现? 问题答案: 您永远不要通过公共方法来回避。这很容易导致资源泄漏,因为您不得不保持语句和连接打开。关闭它们将隐式关闭结果集。但是,将它们保持打开状态将导致它们悬而未决,并且当它们打开过多时,将导致数据库用尽资源。

  • 我试图用这个php脚本创建一个更改密码页面。我希望能够告诉用户他们是否输入了正确的用户名和密码,以便进行更改。当我检查行时,无论它是否返回行,我总是得到以下错误: 警告:mysqli_num_rows()要求参数1为mysqli_结果,给定布尔值 这是我的代码: 注意:我确实在手之前建立了一个连接,只是似乎没有必要在这里进行连接。此外,如果我输入了正确的信息,它将根据需要更改密码,但仍会显示错误消

  • 问题内容: 我相信这是一件非常简单的事情,我发誓我以前做过,但是我不记得怎么做。 假设我有一对多的关系。我想加入两个表,但不允许左侧表重复。 SQLFIDDLE 因此,根据上述SQLFiddle,我的结果将是: 我希望它是: 我的理由是,通过这种方式,我可以轻松地遍历结果,而无需使用PHP进行任何进一步处理。 问题答案: 您可以将值替换为以下内容: 参见带有演示的SQL Fiddle 结果是:

  • 问题内容: 我正在使用JDBC来实现非常简单的数据库连接。 我已经创建了连接/语句并执行了查询。我在调试器中检查语句的查询对象,以确认它正在发送正确的查询。然后,我再次检查了数据库中的查询(直接从调试器复制),以确保其返回数据。但是,返回的结果集在.next()上给出false 这里有我遗漏的常见陷阱吗? 还有myDB类(一个简单的包装程序,使我可以将连接/语句代码放入任何项目中) 编辑:根据建议

  • 我正在用Hibernate Search 4.5.1和Spring 4.0.5版本构建一个应用程序。我正在尝试索引以下类: 我正在构建一个junit测试用例,看起来如下所示: 我还注意到在luke lucene上,一些索引词的长度最多为6个字符,例如,一首歌的艺术家是“后代”,而索引中存储的词是“the”和“offspr”。第一个可以,但第二个不应该是“后代”。为什么要截断名字?

  • 我正在尝试使用废料并遇到一些问题。问题是我的脚本返回重复的结果。我正在尝试从父页面抓取URL,并按照每个单独的URL获取关联的日期。抓取每个嵌套的URL后,它似乎会再次从父页面输出URL列表。 下面是脚本: 下面是 json 输出: 重申一下,我很难从父页面输出一个url列表,从每个单独的嵌套URL输出一个相应的日期列表。我是scrapy和python的新手,所以希望有人能给我指出正确的方向。