Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27

Discussione: db con du tabelle

  1. #1

    db con du tabelle

    Ciao a tutti, ho un dubbio.. Se ho un db con due tabelle e voglio visualizzarle da un programmino Java (IDE NetBeans), come posso fare?

    esempio della funzione esegui:

    codice:
     public Vector eseguiQuery(String query) {
          Vector v = null;
          String [] record;
          int colonne = 0;
          try {
             Statement stmt = db.createStatement();     // Creo lo Statement per l'esecuzione della query
             ResultSet rs = stmt.executeQuery(query);   // Ottengo il ResultSet dell'esecuzione della query
             v = new Vector();
             ResultSetMetaData rsmd = rs.getMetaData();
             colonne = rsmd.getColumnCount();
    
             while(rs.next()) {   // Creo il vettore risultato scorrendo tutto il ResultSet
                record = new String[colonne];
                 for (int i=0; i<colonne; i++) record[i] = rs.getString(i+1);
                v.add( (String[]) record.clone()) ;
             }
             rs.close();     // Chiudo il ResultSet
             stmt.close();   // Chiudo lo Statement
          } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); }
    
          return v;
       }
    nel main:

    codice:
    Vector v = db.eseguiQuery("SELECT * FROM tabella1");
    Vector vv= db.eseguiQuery ("select * from tabella2");
    nella seconda riga mi dà errore,perchè?
    Grazie.

  2. #2
    Quale errore ti da??

  3. #3
    Ciao, mi dà errore nel for:
    for (int i=0; i<colonne; i++) record[i] = rs.getString(i+1);
    e nella seconda dichiarazione:
    Vector vv= db.eseguiQuery ("select * from tabella2");

    Ovviamente se commento la riga Vector vv=.......
    Funziona perfettamente.
    Ciao e grazie.

  4. #4
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Ciao, ma quale esattamente?

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  5. #5
    Originariamente inviato da francesca8080
    Ciao, mi dà errore nel for:
    for (int i=0; i<colonne; i++) record[i] = rs.getString(i+1);
    e nella seconda dichiarazione:
    Vector vv= db.eseguiQuery ("select * from tabella2");

    Ovviamente se commento la riga Vector vv=.......
    Funziona perfettamente.
    Ciao e grazie.
    Volevo sapere il tipo di eccezione che genera, se è ArrayIndexOutOfBoundsException vuol dire che stai tentando di accedere ad un index inesistente di record quindi il numero di colonne è errato.
    Se ritorna SQLException vuol dire che l'errore è nel "rs.getString(i+1)" cioè secondo la documentazione: if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set.

    E poi non c'è nulla di meglio che fare il debug e vedere che valore ti prendono le variabili prima di schiantare....

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Come espressamente richiesto dal Regolamento interno (che suggerisco di rileggere), quando si posta del codice esso va indentato e si devono usare gli appositi tag CODE, altrimenti il codice risulta un'accozzaglia illeggibile.

    Modifico io.

    Inoltre, non è sufficiente dire "mi dà errore", ma, come buon senso vuole, si deve sempre specificare quale errore.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Ciao, innanzitutto chiedo scusa per come ho postato il codice
    Cerco di essere più chiara:
    Il mio programma ha un menu. Tutte le altre voci funzionano anche adesso (per esempio la select alla prima tabella) ma quando digito il numero corrispondente per visualizzare la seconda tabella mi restituisce i seguenti errori:

    at com.mysql.jdbc.ResultSet.getStringInternal(ResultS et.java:5602)
    at com.mysql.jdbc.ResultSet.getString(ResultSet.java: 5420)
    at package.Database.eseguiQuery(Database.java:73)
    at package.Main.main(Main.java:24)

    dove il primo punta al for dell'eseguiQuery e il secondo alla dichiarazione Vector vv.

    Spero di essere stata più chiara.
    grazie!!

  8. #8
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Abbiamo bisogno dello stacktrace intero qui per esempio non c'è indicata la exception.


    btw, basta fare
    codice:
    v.add(record);
    non è necessario richiamare clone()

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  9. #9
    Ciao, scusa ma non sono molto esperta. Nell'eseguiQuery è presente e.printStackTrace() come faccio a visualizzarlo?
    Va bene per v.add(record) ma non risolve il mio problema.

  10. #10
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Lo so, era solo un by the way

    Comunque, la printStackTrace() ti dovrebbe dare di più di quello che hai postato, qualcosa come (esempio)
    codice:
    java.lang.IllegalArgumentException: Blah
            at StackTraceUtil.main(StackTraceUtil.java:42)

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

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 © 2026 vBulletin Solutions, Inc. All rights reserved.