Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Neds
    Registrato dal
    Nov 2004
    Messaggi
    25

    [JAVA] help connessione app con database

    Ho già letto a pillola e visto altri 3d ma ho il cervello in pappa e non ho capito nulla
    quindi ecco il mio problema:
    ho un database mysql 5 su helloweb (host: mysql.helloweb.eu) di nome db1
    devo connettergli un applicazione, mi basta un semplice esempio tipo quello sotto.
    inoltre:che driver devo installare?è necessario? come faccio a fare eseguire un applicazione che interagisce con un database in una macchina che non ha alcun driver?devo distribuirlo insieme all'applicazione?
    aiutatemiiiiiii o la prof mi boccia

    codice:
    import java.sql.*;
    
    public class JDBCApp {
        public static void main (String args[]) {
           try {
     // Carichiamo un driver di tipo 1 (bridge jdbc-odbc)
             String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
             Class.forName(driver);
     // Creiamo la stringa di connessione
             //String url = "jdbc:odbc:myDataSource";
             String url = "jdbc:odbc:https:\\mysql.helloweb.eu";
     // Otteniamo una connessione con username e password
            Connection con = DriverManager.getConnection (url, "user", "Password");
     // Creiamo un oggetto Statement per poter interrogare il db
            Statement cmd = con.createStatement ();
     // Eseguiamo una query e immagazziniamone i risultati
     // in un oggetto ResultSet
            String qry = "SELECT * FROM myTable";
            ResultSet res = cmd.executeQuery(qry);
     // Stampiamone i risultati riga per riga
            while (res.next()) {
            System.out.println(res.getString("columnName1"));
            System.out.println(res.getString("columnName2"));
          }
          res.close();
          cmd.close();
          con.close();
        } catch (SQLException e) {
             e.printStackTrace();
        } catch (ClassNotFoundException e) {
             e.printStackTrace();
           }
        }
      }
    ditemi cosa devo sistemare

  2. #2
    Ciao,

    anzitutto ti rimando a due articoli, brevi ed in italiano, per documentarti riguardo all'uso di JDBC, cosa che non hai fatto visto che le tue domande lo denotano...

    Uso di JDBC da Wikipedia
    Driver per JDBC da HTML.it

    Dopo aver fatto questo rispondo brevemente ai tuoi quesiti.
    Per far sì che Java e un DataBase MySQL possano dialogare tra loro è necessario un driver apposito.
    Nel caso di MySQL il driver si chiama mysql-connector-java. Lo trovi a questo indirizzo. Sono anche presenti dei tutorial in inglese.

    Il driver, un file jar, va poi messo nella cartella jre/lib/ext del tuo sistema.
    Per quanto riguarda un esempio di Applicazione JDBC te ne posto uno:

    Codice PHP:
    ...
    // Carico il Driver MySQL
    Class.forName"com.mysql.jdbc.Driver" );

    // Mi connetto al DataBase con le mie credenziali
    Connection conn DriverManager.getConnection
        
    "jdbc:mysql://localhost:3306/mySchema",
        
    "mioLogin",
        
    "miaPassword" );

    // Eseguo le istruzioni MySQL
    try{

       
    Statement stmt conn.createStatement();
       
    ResultSet rs stmt.executeQuery"SELECT * FROM miaTabella" );
       while ( 
    rs.next() ) {
          
    int numeroColonne rs.getMetaData().getColumnCount();
           for ( 
    int i <= numeroColonne i++ ) {
             
    // I numeri di colonna iniziano da 1.
             // Vi sono diversi metodi che convertono il valore di una colonna in un certo tipo.
             // Vedi la documentazione per una lista delle conversioni valide.
             
    System.out.println"COLONNA " " = " rs.getObject(i) );
          }
       }
       
       
    rs.close();
       
    stmt.close();
    }catch{
       
    // Gestione eccezione

    Ad ogni modo ti consiglio di fare alcune cose prima di postare un problema sul forum:
    • Documentarti al riguardo
    • Cercare la soluzione su Google
    • Verificare attraverso la funzione "cerca" di questo browser che il problema non sia stato già trattato e risolto


    Altrimenti...difficilmente otterrai risposte.

    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  3. #3
    Utente di HTML.it L'avatar di Neds
    Registrato dal
    Nov 2004
    Messaggi
    25
    Hai ragione, però avevo letto un pò di 3d e documenti vari che mi hanno confuso le idee al contrario del tuo post che è stato chiaro, e ti ringrazio.
    cmq ho adattato il tuo codice e compilandolo mi dà quest'errore:

    Errore:com.mysql.jdbc.CommunicationsException: Communications link failure
    Last packet sent to the server was 0 ms ago.

    ho letto alcune cose ma hanno risolto semplicemente aprendo la porta 3306.
    io ho il firewall di windows disattivato(e cmq la porta 3306 consentita), uso avast che non dovrebbe dare problemi (e cmq ho provato l'esecuzione con avast disattivato), e non ho altri firewall
    che cosa sbaglio?
    inoltre:se volessi passare in varie macchine un programmino che si connette al database, come posso fare evitando di passargli anche il driver ma soprattutto di spiegare come installarlo,cioè vorrei un programmino che funziona senza installare altro
    devo mettere tutto in un jar? come faccio?

    codice:
    import java.sql.*;
    
    public class connessionejdbc {
        
        /** Creates a new instance of connessionejdbc */
        public static void main(String args[]) {
            try{
            // Carico il Driver MySQL 
    Class.forName( "com.mysql.jdbc.Driver" ); 
    
    // Mi connetto al DataBase con le mie credenziali 
    Connection conn = DriverManager.getConnection( 
        "jdbc:mysql://mysql.helloweb.eu:3306/db1", 
        "miouser", 
        "miapsw" ); 
    
    // Eseguo le istruzioni MySQL  
    
       Statement stmt = conn.createStatement(); 
       ResultSet rs = stmt.executeQuery( "SELECT * FROM utenti" ); 
       while ( rs.next() ) { 
          int numeroColonne = rs.getMetaData().getColumnCount(); 
           for ( int i = 1 ; i <= numeroColonne ; i++ ) { 
             // I numeri di colonna iniziano da 1. 
             // Vi sono diversi metodi che convertono il valore di una colonna in un certo tipo. 
             // Vedi la documentazione per una lista delle conversioni valide. 
             System.out.println( "COLONNA " + i + " = " + rs.getObject(i) ); 
          } 
       } 
        
       rs.close(); 
       stmt.close(); 
    }catch (Exception e){ 
        System.out.println("Errore:"+e);
    }
    
        }
        
    }

  4. #4
    L'errore da te riportato non mi è mai capitato, non saprei da cosa è dovuto, anche se suppongo che sia per qualche settaggio sbagliato dell'ambiete (probabilmente la porta di ascolto oppure i permessi).
    Io proverei a creare un nuovo post indicando nell'oggetto questo specifico errore.

    Per quanto riguarda il driver ( che ti sta antipatico a quanto vedo...visto che lo vuoi eliminare a forza ) è un .jar quindi penso che devi solo aggiungere questo jar al tuo progetto, ed esportare il progetto.

    Cmq nella mia pur poca esperienza che ho di programmazione ti do un consiglio: risolvi sempre un problema alla volta, cercando di isolarlo il più possibile da tutto il resto. Preoccupati ora di far funzionare il programma nella tua macchina senza errori e poi vedi come si fa ad esportare il progetto (cosa cmq abbastanza facile con IDE come Eclipse)
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

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.