java中的返回记录
我需要将多个记录返回到一个变量中,在下面提到的代码中,在while循环中,我得到了所有的记录,但当返回结果时,我只得到了一条记录,我不知道如何做java中的返回记录,java,Java,我需要将多个记录返回到一个变量中,在下面提到的代码中,在while循环中,我得到了所有的记录,但当返回结果时,我只得到了一条记录,我不知道如何做 public String feed() { String projectname=null; String claintid=null; String projectstatus=null; String prjstartdate=null; String prj
public String feed()
{
String projectname=null;
String claintid=null;
String projectstatus=null;
String prjstartdate=null;
String prjenddate=null;
String lastmodified=null;
String prjpinurl=null;
String patientDetails=null;
try
{
Connection conn = getMySqlConnection();
String simpleProc = "{ call Sp_RetPrjvals () }";
CallableStatement cs = conn.prepareCall(simpleProc);
ResultSet rs=(ResultSet) cs.executeQuery();
while(rs.next()){
projectid=rs.getString(1);
projectname=rs.getString(2);
claintid=rs.getString(3);
projectstatus=rs.getString(4);
prjstartdate=rs.getString(5);
prjenddate=rs.getString(6);
lastmodified=rs.getString(7);
prjpinurl=rs.getString(8);
patientDetails=projectid+"|"+projectname+"|"+claintid+"|"+projectstatus+"|"+prjstartdate+"|"+prjenddate+"|"+lastmodified+"|"+prjpinurl;
//here i am getting two values before:::2|Sample project 2|1|WIP|2015-08-01 00:00:00.0|2016-08-01 00:00:00.0|2015-08-24 16:40:10.0|http://hcup-us.ahrq.gov/toolssoftware/ccs/ccs.jsp
before:::1|Sample project 1|1|WIP|null|null|2015-08-24 16:38:39.0|http://hcup-us.ahrq.gov/toolssoftware/ccs/ccs.jsp
}
conn.close();
} catch (Exception e)
{
}
return patientDetails;
// here i am getting only After:::1|Sample project 1|1|WIP|null|null|2015-08-24 16:38:39.0|http://hcup-us.ahrq.gov/toolssoftware/ccs/ccs.jsp
}
如果您希望能够重新运行String列表,那么在这种情况下应该使用String对象数组
比如:
String[] patientDetails
patientDetails[i] = projectid+"|"+projectname+"|"+claintid+"|"+projectstatus+"|"+prjstartdate+"|"+prjenddate+"|"+lastmodified+"|"+prjpinurl;
i ++; //Initialize this *i* variable outside the while
然后在代码中,您应该将每个返回的记录添加到数组中
比如:
String[] patientDetails
patientDetails[i] = projectid+"|"+projectname+"|"+claintid+"|"+projectstatus+"|"+prjstartdate+"|"+prjenddate+"|"+lastmodified+"|"+prjpinurl;
i ++; //Initialize this *i* variable outside the while
同时将方法的签名更改为:
public String[] feed()
问题是您重写了字符串。您必须将其添加到列表或数组中 例如:
List al=new ArrayList()
然后,您必须将每一步构建的字符串添加到此数组中,并重新运行此数组:
al.add(patientDetails);
您的return语句如下:returnal代码>
然后,您的函数头是:
public List<String> feed(){
公共列表提要(){
因为您不知道结果的大小,所以需要一个动态结构,如列表:
List<String> pacients = new ArrayList<>();
while(results.next()){
...
String patientDetails = ....;
pacients.add(patientDetails);
}
现在,当您想要打印PatientDetails时,您将得到与字符串表示相同的结果
您将返回一个保存查询结果的列表。您是否在数据库上执行了存储过程,看到了吗?是的,我已经执行了,我得到了两条记录,在while循环中,我得到了这两条记录,但在返回时,我得到了一条记录,因为您正在这样做patientDetails=projectd[etc]
,因此在每次循环中,您都会重置字符串,而不是连接到字符串。string[]patientDetails我已经编写了该代码,但出现了类型不匹配错误。您是否也更改了设置该数组的方式,如我的答案所示?请更新您的答案,说明您尝试过的内容和出现的错误。patientDetails[i]=projectid+“|”+projectname+“|”+claintid+“|”+projectstatus+“|”+prjstartdate+“|”+prjenddate+“|”+lastmodified+“|”+prjpinurl;System.out.println(“before::”+patientDetails);i++;返回patientDetails;在这一行中,我得到的类型不匹配不能将字符串[]转换为字符串错误