Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [Java] Show Tables

  1. #1
    Utente di HTML.it L'avatar di Keyren
    Registrato dal
    Aug 2012
    Messaggi
    64

    [Java] Show Tables

    Salve a tutti,ho da poco iniziato ad usare java+mysql e stavo appunto provando ad effettuare varie operazioni sui database,ma sono bloccato appunto su "SHOW TABLES" non riesco a stampare la lista delle tabelle,procedo in questo modo(avendo già effettuato correttamente la connessione ecc..)
    codice:
    ResultSet Result1 = statement.executeQuery("SHOW TABLES"); 
    while(Result1.next()){ 
    String TB = Result1.getString("Table"); 
    System.out.println(TB); 
    }
    Mi da il seguente errore:
    codice:
    java.sql.SQLException: Column 'Table' not found. at 
    com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) at 
    com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988) at 
    com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974) at 
    com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919) at 
    com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1167) at 
    com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5733) at 
    prova.Prova.main(Prova.java:48)
    E non riesco proprio a risolvere,usando lo stesso pezzo di codice,riesco a stampare tranquillamente la lista dei database faccio "SHOW DATABASES" e poi Result1.getString("Database");...quindi la mia domanda è cosa mi sfugge?xD Riesco ad effettuare senza problemi tutti i tipi di operazioni sui database(o comunque quelle normalmente più usate)..grazie in anticipo^^

  2. #2
    Ciao,

    prova con:
    codice:
    String TB = Result1.getString(1);
    e vedi se va...

    Ciao
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Anche perchè a me risulta che la colonna del comando SHOW TABLES non si chiami "Table", ma
    "Tables_in_nomeDB", dove "nomeDB" è il nome del database di cui stai visualizzando le tabelle


    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

  4. #4
    Utente di HTML.it L'avatar di Keyren
    Registrato dal
    Aug 2012
    Messaggi
    64
    grazie ad entrambi funziona sia con:
    Result1.getString(1); che con Result1.getString("Tables_in_nomeDB");
    Però adesso mi sorge un dubbio che differenza c'è tra i due?

  5. #5
    In poche parole nessuna.
    la mia ti va a prendere la prima colonna sul resultset, indipendentemente dal nome, invece quella di Lele ti va a prendere la colonna con quel nome.

    se fai ad esempio
    codice:
    select nome, cognome, eta from anagrafica
    con
    Result1.getString(1) ==> nome
    Result1.getString(2) ==> cognome
    Result1.getInt(3) ==> eta

    ed è la stessa cosa di
    Result1.getString("nome") ==> nome
    Result1.getString("cognome") ==> cognome
    Result1.getInt("eta") ==> eta


    Forse la mia è più utile quando non conosci bene il nome dei campi.
    codice:
    select * from anagrafica

    Ciao
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da schumy2000
    Forse la mia è più utile quando non conosci bene il nome dei campi.
    Sì, io non ho mai usato la versione labeled di ResultSet... sempre e solo quella con l'indice del campo. Così, se devo modificare la struttura della tabella cambiando i nomi dei campi, almeno le applicazioni continuano a funzionare.


    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
    Utente di HTML.it L'avatar di Keyren
    Registrato dal
    Aug 2012
    Messaggi
    64
    tutto chiaro grazie ancora ad entrambi^_^

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.