Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Jdbc

    Utilizzando le jdbc ho dovuto far uso dell'iteratore ResultSet, ora però vorrei sapere se per questo iteratore, esiste un modo di stampare più righe con getString. O meglio ho una lista di dati identificati da un id, effettuo l'interrogazione sql facendo stampare a video una lista degli elementi con id differenti, utilizzando il distinct di sql, poichè vi possono essere elementi con id uguali poichè l'id non l'ho dichiarato come chiave primaria. Successivamente assegnando un indice ad ogni id, uso il metodo absolute del Result set per accedere ad un determinato id in modo da stampare tutti gli attributi di quel dato. Vorrei però che mi stampasse anche gli altri elementi che hanno id uguale a quello scelto da me. E' possibile farlo??

    Posto il mio codice:

    codice:
     public void addTransazione(int id_partita, String giocatore, float d, int vincita){
        	try{
          	  Statement st = DbAccess.getConnection().createStatement();
          	  st.executeUpdate("INSERT INTO transazioni (ID_PARTITA, GIOCATORE, PUNTEGGIO, VINCITA)"+ 
          	  	"VALUES ('"+id_partita+"','"+giocatore+"','"+d+"','"+vincita+"')");
          	  st.close();
            }catch(SQLException e){
          	  System.out.println("Inserimento non eseguito");
          	  e.printStackTrace();
            }
        }
        
        public ArrayList<TransazioneDB> getTransazioni(int id_partita){
          	ArrayList<TransazioneDB> tr = new ArrayList<TransazioneDB>();
          	int i = 1;
          	int a;
        	try{
            	  Statement s = DbAccess.getConnection().createStatement();
            	  /*ResultSet r = s.executeQuery(" SELECT ID_PARTITA" +
      	  		  " FROM transazioni ");*/
            	  ResultSet r = s.executeQuery("SELECT ID_PARTITA,GIOCATORE,PUNTEGGIO,VINCITA" +
            	  		" FROM transazioni "+
            	  		" GROUP BY ID_PARTITA");
            	  while(r.next()){
            		  System.out.println(i+") "+r.getString(1));
            		  tr.add(new TransazioneDB("giocatore",PUNTEGGIO,VINCITA));
            		  i++;
            	  }
            	 r = s.executeQuery(" SELECT ID_PARTITA, GIOCATORE, PUNTEGGIO, VINCITA" +
      	  		 " FROM transazioni "+
      	  		 " GROUP BY ID_PARTITA"); 
            	 a = video.chiediInteger("Inserisci il numero della partita di cui si vuole storico: "); 
                 if(r.absolute(a))//absolute sceglie la posizione in cui accedere
                	 System.out.println("\n"+ r.getString(2) +" , "+ r.getString(3)+" , "+ r.getString(4));
            	 s.close();
              }catch(SQLException e){
            	  System.out.println("Inserimento non eseguito");
            	  e.printStackTrace();
              }
        	return tr;	
        }

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non ho ben capito perché ti sia complicato la vita nel design del database... amen... comunque, se hai un id e vuoi tirare fuori tutte le righe (con tutti i campi annessi e connessi) con quel dato id, quante esse siano:

    codice:
    SELECT * FROM tua_tabella WHERE tuo_id = id
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Ringrazio per la risposta. Anche se nn era proprio giusta ho preso spunto e sono riuscito a far ciò che volevo.

  4. #4
    Rifancendomi sempre al discorso del database, uso come nel codice postato prima il ResultSet come iteratore per stampare le varie transazioni registrate. Siccome ne stampa una alla volta a console, adesso vorrei stamparle su interfaccia grafica. Usando la JOptionpane però ne stampa una alla volta, e per ogni transazione devo premere il tasto ok. Nn vi è un metodo che memorizza tutto e poi stampa il tutto in un'unica schermata??

    Se nn sono chiaro cerco di spiegare meglio ma penso di aver trasmesso il concetto. Chi conosce le Jdbc sa che per stampare delle transazioni salvate su di un db si usa il metodo getString che stampa una transazione dopo l'altra grazie ad un iteratore che itera sul db. Ebbene io vorrei che questa stampa avvenisse su interfaccia grafica.

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.