java中的返回记录

java中的返回记录,java,Java,我需要将多个记录返回到一个变量中,在下面提到的代码中,在while循环中,我得到了所有的记录,但当返回结果时,我只得到了一条记录,我不知道如何做 public String feed() { String projectname=null; String claintid=null; String projectstatus=null; String prjstartdate=null; String prj

我需要将多个记录返回到一个变量中,在下面提到的代码中,在while循环中,我得到了所有的记录,但当返回结果时,我只得到了一条记录,我不知道如何做

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;在这一行中,我得到的类型不匹配不能将字符串[]转换为字符串错误