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;
e questocodice: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"); } }
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...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; }
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?

Rispondi quotando