Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Problema Statement

  1. #1

    Problema Statement

    Salve a tutti, mi sto avvicinando adesso a java e stavo provando a creare una piccola rubrica utilizzando un data base sqlite ma ho un piccolo problema che non riesco a capire.
    ho scritto una classe database nella quale ho questi 2 metodi;

    codice:
    public void connetti(){
            try{
                Class.forName("org.sqlite.JDBC");
                Connection conn = DriverManager.getConnection("jdbc:sqlite:rubrica.sqlite");
                connesso=true;
                System.out.println("Connessione stabilita");
            }
            catch (Exception e){
                System.out.println("Errore caricamento driver");
            }
        }
    e questo

    codice:
    public ArrayList dati(){
            if (connesso==false){
                 connetti();
             }
            ArrayList<contatto> lista = new ArrayList<contatto>();
            try{
                // Class.forName("org.sqlite.JDBC");
                // Connection conn = DriverManager.getConnection("jdbc:sqlite:rubrica.sqlite");
                // connesso=true;
                // System.out.println("Connessione stabilita");
                Statement stat = conn.createStatement();
                ResultSet rs = stat.executeQuery("Select * from contatti");
                while (rs.next()){
                    int id = rs.getInt("id");
                    String cognome=rs.getString("cognome");
                    String nome=rs.getString("nome");
                    String indirizzo=rs.getString("indirizzo");
                    String citta=rs.getString("citta");
                    String telefono=rs.getString("telefono");
                    contatto nuovo = new contatto(id,cognome,nome,indirizzo,citta,telefono);
                    lista.add(nuovo); 
                   
                }
            }
            catch (Exception e){
                System.out.println("Errore");
            }
            return lista;
        }
    il problema sta nel fatto che se nel metodo ArrayList dati() metto la condizione che se la connessione non è stabilita richiamo il metodo per stabilirla in esecuzione mi da un errore...
    se invece tolgo la condizione e tolgo i simboli // allora tutto funziona...

    perche se carico i driver effettuo la connessione e creo lo statement tutto in un solo metodo funziona mentre invece se stabilisco la connessione in un metodo e creo lo statement in un altro mi va in errore?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Problema Statement

    Che errore ti da? Non uccidere le eccezioni, piuttosto durante lo sviluppo fatti stampare lo stack trace!

    Originariamente inviato da Calida1982
    codice:
    public void connetti(){
            try{
                Class.forName("org.sqlite.JDBC");
                Connection conn = DriverManager.getConnection("jdbc:sqlite:rubrica.sqlite");
                connesso=true;
                System.out.println("Connessione stabilita");
            }
            catch (Exception e){
                System.out.println("Errore caricamento driver");
            }
        }
    L'oggetto conn nasce e muore all'interno del blocco try. Visto l'altro metodo, immagino che ti serva un attributo conn e non una variabile locale.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Ciao, grazie per la risposta,

    avevo gia dichiarato conn come attributo usando

    codice:
    public Connection conn;
    ma poi nel metodo come te mi hai fatto notare lo dichiaravo nuovamente....
    è bastato togliere connection e lasciare solo
    codice:
    conn=DriverManager....
    ed ora funziona tutto....

    grazie ancora!

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.