gpt4 book ai didi

java - while (rs.next()) 没有返回所有结果?

转载 作者:行者123 更新时间:2023-11-29 03:28:14 27 4
gpt4 key购买 nike

我正在从一个表中检索多个结果。如果在表中找到两条记录,则只返回一条。如果有三个结果,则只返回两个。我不确定为什么会这样,因为我认为“while (rs.next())”方法会遍历每个结果。任何想法/评论表示赞赏。谢谢。

package Test;

import java.sql.*;

public class DatabaseConnection {
//Create a GUI object
static GUI GUI = new GUI();
//Initialize String array
static String[] arr = new String[5];
//Connection string to Access Database
static String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Users/StevenM/Desktop/TestProject.mdb";

public static void main(String[] args) throws ClassNotFoundException, SQLException{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}

static void SelectAllFromActor(String Query) throws SQLException, ClassNotFoundException{
Connection conn = DriverManager.getConnection(database,"","");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(Query);
if(!rs.next()){
GUI.NoResults();
}
else{
GUI.SetActorModel();
GUI.clearResults();
while (rs.next()){
arr[0] =(rs.getString("Title") +" ");
arr[1] =(rs.getString("First_Name") +" ");
arr[2] =(rs.getString("Last_Name") +" ");
arr[3] =(rs.getString("Gender") +" ");
arr[4] =(rs.getString("ID") +" ");
GUI.AddToTable(arr,"Actor");
}
}
}

最佳答案

您在 if 语句中调用 rs.next(),它检索第一条记录。然后在您的 while 循环中它会调用 rs.next() 多次,但您永远不会获得第一条记录,因为它已经被检索到。

像这样重做:

boolean records = false;
while(rs.next()) {
records = true;
// code
}
if(!records)
GUI.NoResults();

关于java - while (rs.next()) 没有返回所有结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19857527/

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