gpt4 book ai didi

java - 无法打印从服务器传输到客户端的结果集

转载 作者:行者123 更新时间:2023-12-01 15:52:21 25 4
gpt4 key购买 nike

我需要创建一个客户端-服务器连接(在JAVA中),其中服务器连接到数据库,客户端可以发送查询并获取答案。我使用 OCSF(由 Timothy C. Lethbridge 博士开发)和 JAVA 的 JDBC 驱动程序。在服务器端,我有以下代码

ResultSetMetaData rsmd=rs.getMetaData();
int numOfCols=rsmd.getColumnCount();
String[] tuple=new String[numOfCols];
Vector result=new Vector();
while (rs.next()){
for (int i=1;i<=numOfCols;i++)
tuple[i-1]=rs.getString(i);
result.addElement(tuple);
isResultEmpty=0;
}
if (isResultEmpty==0)
this.sendToAllClients(result);
else
this.sendToAllClients("No appropriate results!");

到目前为止,它似乎工作正常,我做了一些测试打印,如果 for 循环工作正常。

对于客户端,我有以下代码:

public void handleMessageFromServer(Object msg) 
{
//clientUI.display(msg.toString());
if (msg instanceof Vector){
Vector result=(Vector)msg;
System.out.println("The result of the query is:\n\n");
//System.out.println((String)result.firstElement());
System.out.println("result size is "+result.size());
for (int i=1;i<=result.size();i++){
System.out.println("here");
System.out.println((String)result.get(i));
System.out.println("here2");
}
}
else
clientUI.display(msg.toString());
}

当我尝试打印结果时,问题开始了:第一个“here”被打印出来,没有其他事情发生,它永远不会到达“here2”,并且似乎只是终止打印并等待新的输入。

我做的选角有问题吗?我只是无法弄清楚确切的问题出在哪里......预先非常感谢您的帮助

最佳答案

您没有 String 对象的 vector 。您有一个字符串数组 vector (String[])

编辑回复评论:

System.out.println("result size is "+result.size());
for (int i = 0;i < result.size();i++){
System.out.println("here");
String[] array = (String[])result.get(i));
for (int j = 0; j < array.length; j++)
System.out.println(array[j]);
System.out.println("here2");
}

这当然是假设服务器端工作正常。我没有仔细看。

服务器端编辑:

这是各种各样的坏事:

while (rs.next()){
for (int i=1;i<=numOfCols;i++)
tuple[i-1]=rs.getString(i);
result.addElement(tuple);
isResultEmpty=0;
}

在每次循环迭代中,您只需更改字符串数组包含的内容,并一遍又一遍地添加相同的引用。您需要:

String[] tuple;
while (rs.next()){
tuple = new String[numOfCols];
for (int i=1;i<=numOfCols;i++)
tuple[i-1]=rs.getString(i);

result.addElement(tuple);
isResultEmpty=0;

}

关于java - 无法打印从服务器传输到客户端的结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5767547/

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