Visualizzazione dei risultati da 1 a 3 su 3

Discussione: resulset to a string

  1. #1

    resulset to a string

    Ciao a tutti,

    ho un problema nel creare una stringa da una query effettuata su un db ecco il codice:

    codice:
     
    Statement st = null;
    ResultSet rs = null;
    String figli = null;
    ArrayList<String> ar = new ArrayList<String>();
    		
    String SQL = "select FIGLIO from PADRE_FIGLIO where PADRE = '" + string + "'";
    
    	try {
    		st = con.createStatement();
    		rs = st.executeQuery(SQL);
    
    		while (rs.next()) {
    			String value = rs.getString("FIGLIO");
    			ar.add(value);
    		}
    			
    	} catch (SQLException e) {
    		} finally {
    		try {
    
    			if (rs != null)
    			rs.close();
    			if (st != null)
    			st.close();
    		} catch (Exception e) {
    
    		}
    	}
    riesco quindi a attenere un arraylist da quella query, ma vorrei invece avere una stringa fatta in questo modo:
    la query restituisce quanti figli ha un padre (n° dimanico quindi)
    vorrei che il metodo restituisse
    return figli = figlio1, figlio2, figlio3
    ecc... cioè vorrei concatenare i risultati della query con ", " tranne l'ultimo elemento.

    Avete idee?
    Grazie ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: resulset to a string

    Originariamente inviato da leonardophp
    Ciao a tutti,

    ho un problema nel creare una stringa da una query effettuata su un db ecco il codice:

    codice:
     
    Statement st = null;
    ResultSet rs = null;
    String figli = null;
    ArrayList<String> ar = new ArrayList<String>();
    		
    String SQL = "select FIGLIO from PADRE_FIGLIO where PADRE = '" + string + "'";
    
    	try {
    		st = con.createStatement();
    		rs = st.executeQuery(SQL);
    
    		while (rs.next()) {
    			String value = rs.getString("FIGLIO");
    			ar.add(value);
    		}
    			
    	} catch (SQLException e) {
    		} finally {
    		try {
    
    			if (rs != null)
    			rs.close();
    			if (st != null)
    			st.close();
    		} catch (Exception e) {
    
    		}
    	}
    riesco quindi a attenere un arraylist da quella query, ma vorrei invece avere una stringa fatta in questo modo:
    la query restituisce quanti figli ha un padre (n° dimanico quindi)
    vorrei che il metodo restituisse
    return figli = figlio1, figlio2, figlio3
    ecc... cioè vorrei concatenare i risultati della query con ", " tranne l'ultimo elemento.

    Avete idee?
    Grazie ciao
    Da un ArrayList<String> "Gianni" "Piero" "Maria" vuoi ottenere un'unica stringa "Gianni, Piero, Maria" oppure la stringa "Gianni, Piero"? Non ho capito se quel "tranne l'ultimo elemento" si riferisce all'ultimo elemento o al fatto che non vuoi la virgola dopo l'ultimo elemento. Comunque poco cambia.

    Inserisci inizialmente nella stringa da ritornare il primo elemento e comincia a scorrere gli elementi l'ArrayList (fermando all'ultimo o al penultimo a seconda di cosa intendevi), e ad ogni iterazione concateni alla stringa un ", " (virgola e spazio) e l'elemento dell'ArrayList in questione. Se ho capito quel che volevi fare, e se ovviamente l'ArrayList è ben fatto come dici.

    Devo ammettere che non ho controllato nelle API se c'è qualche metodo già fatto che faccia al caso tuo, ma tanto si tratta di poche righe.
    Più che una String, sarebbe corretto utilizzare StringBuilder/StringBuffer che non sono immutabili, avranno un metodo append() o simile.

  3. #3
    Grazie Kaamos,
    non volevo la virgola in fondo in quanto mi serviva come return per una "IN" di un'altra query.

    Ho risolto nel seguente modo:

    codice:
    if(!ar.isEmpty()){
         figli = (String) ar.toArray()[0];
    
         for (int i = 1; i < ar.size(); i++) {
               if (i != ar.size()) {
    	figli += ", ";
               }
               figli += ar.toArray()[i];
         }
     }else{
           figli = "non disponibili";
     }
    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.