Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Query mysql

  1. #1

    Query mysql

    Salve a tutti, ho già postato ieri per un altro problema, questo che vi illustro ora si è verificato subito dopo.
    Dopo aver fatto una query mysql tramite java, mi memorizza i risultati ottenuti in un vector (il codice per il database e le query l'ho preso da html.it). Siccome nel vector è presente un solo valore (sono SICURO di questo) voglio prelevarlo e inserirlo in una string, ma escono eccezioni, il codice è il seguente:
    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;
      }
    codice:
    public String autentica(String query){
    		String s = (String) db.eseguiQuery(query).get(0);
    		System.out.println(s);
    		return s;
    	}

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    E' bello vedere che ancora viene usata quella mia vecchia classe...

    Ad ogni modo, per come è definito, il metodo eseguiQuery() restituisce sempre un Vector di array di String (sia che il risultato sia di un milione di record formato da 100 campi ciascuno, sia che si tratti di un solo valore).

    Nel tuo caso, quindi, dovrai agire in questo modo:
    codice:
    public String autentica(String query){
       Vector risultato = db.eseguiuery( query );
       String s = ((String[]) risultato.getElementAt(0))[0];
       System.out.println(s);
       return s;
    }
    In soldoni:
    La prima istruzione ritorna il Vector.
    La seconda estrae il primo array contenuto nel Vector e da esso estrae il primo campo.

    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

  3. #3
    Originariamente inviato da LeleFT
    E' bello vedere che ancora viene usata quella mia vecchia classe...

    Ad ogni modo, per come è definito, il metodo eseguiQuery() restituisce sempre un Vector di array di String (sia che il risultato sia di un milione di record formato da 100 campi ciascuno, sia che si tratti di un solo valore).

    Nel tuo caso, quindi, dovrai agire in questo modo:
    codice:
    public String autentica(String query){
       Vector risultato = db.eseguiuery( query );
       String s = ((String[]) risultato.getElementAt(0))[0];
       System.out.println(s);
       return s;
    }
    In soldoni:
    La prima istruzione ritorna il Vector.
    La seconda estrae il primo array contenuto nel Vector e da esso estrae il primo campo.

    Ciao.
    Mi dice che il metodo getElementAt non è definito per l'oggetto vector


    edit:
    risolto, il metodo è elementAt non getElementAt

  4. #4
    il metodo è elementAt, non getElementAt

    ciao

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Originariamente inviato da laguna86
    il metodo è elementAt, non getElementAt

    ciao
    Distrazione mia... è una vita che non uso più la classe Vector...


    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

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.