开发者

How I can return query result from Server to Client

开发者 https://www.devze.com 2023-04-01 06:56 出处:网络
I have a webservice where from the Client-side some parameters are passed to perform a query on the DB, the Server-Side is supposed to carry out the query and return the results.Since the result might

I have a webservice where from the Client-side some parameters are passed to perform a query on the DB, the Server-Side is supposed to carry out the query and return the results.Since the result might be more than one row and i will have to use it on the client-side to show an output this what i did:

1.Perform the query 2.take each row of the result and put it in an array 3.convert the array to String and pass it to the client side(converted array to String, because it was simple)

BUT the problem is that it doesnt pass the the array-turned-string but only the value which was used to initialize the string, here is the code

        String ris = "";
        String q;

        String beta = null;
        String one="";

        String errore = connetti();
        try {
              if (errore.equals("")) {
                    Statement st = conn.createStatement();
                    //ESECUZIONE QUERY
                    q = "SELECT DISTINCT nome FROM malattia WHERE eta='" + age + "' AND sesso='" + sexstr + "' AND etnia='" + etniastr + "' AND sintomi IN(" + tes + ")";


                    ResultSet rs = st.executeQuery(q);
                             if (!rs.last()) {
                                                 ris = "no";
                                                  } 
                                 //This is the part which i'm talking about
                                 else {

                                             //getRowCount is another class used to find out number of rows,I use it to declare an array which would contain the result of the query

                                             int two=getRowCount(rs);
                                             Stri开发者_如何学Pythonng[]  alpha= new String[two];
                                             //Loop through the resultstatement and put result from the column **nome** in the array **alpha**
                                             while(rs.next()){
                                                       alpha[i]=rs.getString("nome");
                                                         i++;
                                                             }
                                             //The value of ris which is empty, is returned 
                                             ris="";

                                             //instead of this one, where i convert the array **alpha** to String 
                                             ris=arrayToString(alpha,",");


                                 }
                             } 
                            else {
                              ris = errore;
                             }
      conn.close();


            } catch (Exception e) {
          ris = e.toString();
                              }
        return ris;

    }




             //returns the number of rows of **ris**
public static int getRowCount(ResultSet set) throws SQLException
{
   int rowCount;
   int currentRow = set.getRow();            // Get current row
   rowCount = set.last() ? set.getRow() : 0; // Determine number of rows
   if (currentRow == 0)                      // If there was no current row
      set.beforeFirst();                     // We want next() to go to first row
   else                                      // If there WAS a current row
      set.absolute(currentRow);              // Restore it
   return rowCount;
}

             //converts the array to String
public String arrayToString(String[] array, String delimiter) {
    StringBuilder arTostr = new StringBuilder();
    if (array.length > 0) {
    arTostr.append(array[0]);
    for (int i=1; i<array.length; i++) {
        arTostr.append(delimiter);
        arTostr.append(array[i]);
    }
    }
    return arTostr.toString();

Thanks alot in advance!


After conn.close() you return beta instead of ris. This may be the cause of the behavior you are experiencing. However, I am not sure because I can not properly see how you open and close the curly brackets.

0

精彩评论

暂无评论...
验证码 换一张
取 消