gpt4 book ai didi

java - 从访问表中检索特定行

转载 作者:行者123 更新时间:2023-11-30 02:41:56 24 4
gpt4 key购买 nike

我浏览了这个论坛并在网上搜索了我上述问题的解决方案,但找不到能为我指明正确方向的东西。如果这是重复的,请原谅。

我正在开发一个 java 项目,我的应用程序与 MS Access 2016 数据库进行交互。我的程序的功能之一是查询数据库中的特定记录并在 GUI 中显示该记录的数据。这是我检索数据的代码:

int i = 0;
String q = "select * from QueryData where id=123456";
try {
pstmnt=conn.prepareStatement(q);
Object obj ;
rs = pstmnt.executeQuery();
while (rs.next()) {
obj=rs.getObject(i+1);
data.add(obj); //where data is a List object i++;
}
} catch ....

问题是我只获取该记录中的第一个值(记录的第一列),并且记录/行中还有更多可用数据。

是否是 rs.next() 方法正在执行此操作?如果是,我应该使用什么来获取此特定记录中的下一个值?

最佳答案

ResultSet#next() 迭代结果集中的(在本例中,只是一行)。如果您事先不知道结果集的结构,您可以从 ResultSetMetaData 对象动态推导它:

int i=0; 
String q="select * from QueryData where id=123456";
try (PreparedStatement pstmnt = conn.prepareStatement(q);
ResultSet rs = pstmnt.executeQuery()) {

ResultSetMetaData rsmd = rs.getMetaData();

// Assume it's just one row.
// If there's more than one, you need a while loop
if (rs.next()) {
for (int i = 0; i < rsmd.getColumnCount(); ++i) {
data.add(rs.getObject(i + 1));
}
}
}

关于java - 从访问表中检索特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41428386/

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