Ad esempio, stai leggendo una riga da un file di testo. Cosa rappresenta quella riga, nel suo insieme? Un luogo mi pare di capire... Avrai quindi una classe Luogo (ad esempio). I singoli valori cosa sono? Il nome, un indirizzo e un numero di telefono. Ecco quindi tre campi per la tua classe.Originariamente inviato da Mon91
Il senso dell'ArrayList indirizzi vorrebbe essere un modo per salvare i dati del file che sto leggendo e salvare le sue terne per poi riempire colonne del database! Come dovrei fare? Che logica devo seguire secondo la programmazione ad oggetti?
Non mi è molto chiaro come farese mi spieghi cosa intendi e mi dai qualche consiglio sto cercando di imparare! Ti ringrazio molto per il tuo aiuto
La classe DB è corretta, ha solo un pessimo nome. Rappresenta un DB? No, è un Luogo.
ps: ti sconsiglio di usare lettere accentate nel codice.
Quel codice inoltre fa troppe cose, tutte assieme: leggi il file, spezzi la riga, salvi a db...
Potresti organizzare il tutto diversamente. Ad esempio, da una parte ha un oggetto che legge il file e man mano crea gli oggetti Luogo. La creazione vera e propria la potresti delegare ad un oggettino specializzato che si occupa anche di ripulire quello che sta leggendo (ad esempio, tu salvi a db tutto "Tel: 0523 763077" quando in realtà potresti mettere "0523763077").
Poi avrai un oggetto che si occupa del db: crea la connessione, crea la tabella e, data una lista di luoghi (es.: List<Luogo>) si occupa di inserirli a db.
Fai questo esercizio: prendi un pezzo di carta e prova a capire quali sono le entità in gioco e come interagiscono tra di loro.
Penso che il problema siano alcune righe del file che leggi. Ad esempio questa:Originariamente inviato da Mon91
Ho provato a mettere a posto il file di testo con un replaceAllcodice:Exception in thread "main" java.sql.SQLException: near "Tel": syntax error at org.sqlite.DB.throwex(DB.java:288) at org.sqlite.NativeDB.prepare(Native Method) at org.sqlite.DB.prepare(DB.java:114) at org.sqlite.Stmt.executeUpdate(Stmt.java:102) at beans.Main.main(Main.java:36)
ma mi da lo stesso problema.. che cosa fare?codice:String t=line.replaceAll(":", " ");
Al.Fi Srl; Rottofreno (Pc) 5, Via Curiel S.Nicolo'; Tel: 0523 763077
Noti niente di strano? Mi riferisco all'apostrofo su S.Nicolo'. Cosa succede quando il token Rottofreno (Pc) 5, Via Curiel S.Nicolo' viene messo nella query di insert?
Viene fuori questo:
"... values('Al.Fi Srl;', 'Rottofreno (Pc) 5, Via Curiel S.Nicolo'', 'Tel: 0523 763077'"