|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
[JAVA] creazione elenco Regioni->Province
ciao a tutti, sto cercando di trovare una soluzione elegante ad un problema molto semplice, devo creare una specie di database contenente tutte le regioni d'italia e le relative province per ogni regione, che soluzione scegliereste?
potrebbe sembrare una domanda idiota ma voglio fare bella figura con il profe ![]() ![]()
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
A me viene in mente una cosa del genere: class Regione, tra i membri di istanza avrà un Integer idRegione che serve a identificare univocamente una regione (il cui valore deve essere unico per ogni istanza della classe, da prendere dunque da un elenco comune a tutte le istanze di questa classe e di cui tenere traccia dei valori utilizzati in qualche modo...) class Provincia, tra i membri di istanza avrà un Integer idProvincia che serve a identificare univocamente una proviancia (il cui valore deve essere unico per ogni istanza della classe, da prendere dunque da un elenco comune a tutte le istanze di questa classe e di cui tenere traccia dei valori utilizzati in qualche modo...) una classe Mapper che contiene: - HashMap<Integer, Regione> mapRegioni, con tutte le regioni, mappa un idRegione con la relativa istanza di Regione; - HashMap<Integer, Provincia> mapProvince, con tutte le province, mappa un idProvincia con la relativa istanza di Provincia; - HashMap<Integer, ArrayList<Integer>> mapper, che mappa un idRegione con un ArrayList di idProvince per realizzare la relazione "one to many" tra regioni e provincie. - metodi vari che operano sulle strutture dati di cui sopra per effettuare interrogazioni, inserimenti e quant'altro. Scritto al volo, è la prima cosa che mi è venuta in mente, e poi non ho la certezza di aver capito bene la tua richiesta... P.S.: al posto di un ArrayList (una List) per associare gli idProvincia alla idRegione di appartenenza forse è meglio usare un Set... P.P.S.: dubbione: ma non è che tu volevi solo sapere come impostare le relazioni tra le tabelle nel db, giusto?
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
si mi sono spiegato un pò frettolosamente..allora premetto che non sono espertissimo
![]() provincia Es Venezia, Padova, Verona sigla Es VE,PD,VR regione Es Veneto io ho l'elenco con i dati e devo caricarlo (nel codice e non leggendolo da file ) istanziando questi oggetti, in modo che nel main io crei un oggetto "contenitore" (che ancora non riesco a focalizzare) che automaticamente istanzi tutti gli oggetti Provincia..spero sia un pò + chiaro..grazie a tutti ![]()
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 Ultima modifica di Re_Kotc : 20-02-2009 alle 18:49. Motivo: errore mio :D |
![]() |
![]() |
![]() |
#4 | ||
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
esempio: Tabella Provincia provinciaID[primary_key] | nome | sigla | 1 | Padova | PD | 2 | Milano | MI | 3 | Venezia| VE | Tabella Regione regioneID[primary_key] | nome | 1 | Veneto | 2 | Lombardia | rappresento una riga della tabella "Provincia" con una classe, ad esempio: Codice:
class Provincia { // keep track of used ID's for all instances of this class public static int idCount = 1; // unique ID for this instance private Integer idProvincia; private String nome; private String sigla; public Provincia(String nome, String sigla) { // get the unique ID for this instance // increment the static counter for this class this.idProvincia = new Integer(idCount++); this.nome= nome; this.sigla= sigla; } // metodi vari di Provincia, bla bla... } Quote:
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
||
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
intanto grazie della risp
![]() Quote:
![]()
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Bhe, ma intendi fare così?
Codice:
... in the context of the main class public static ArrayList<Provincia> instantiateListProvincie() { ArrayList<Provincia> list = new ArrayList<Provincia>(); list.add(new Provincia("nome", "sigla")); list.add(new Provincia("nome2", "sigla2")); list.add(new Provincia("nome3", "sigla3")); ... list.add(new Provincia("nomeN", "siglaN")); return list; } public static ArrayList<Regione> instantiateListRegioni() { ArrayList<Regione> list = new ArrayList<Regione>(); list.add(new Regione(...)); list.add(new Regione(...)); list.add(new Regione(...)); ... list.add(new Regione(...)); return list; } // entry point public static void main(String[] argv) { ArrayList<Provincia> listProvince = instantiateListProvincie(); ArrayList<Regione> listRegioni = instantiateListRegioni(); ... }
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
eh purtroppo non vedo alternative se non posso caricare i dati dall'esterno...è l'unica soluzione no?
![]()
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
ho provato ad aggiustare un pò la cosa (con le mie limitate competenze sorry
![]() nella classe Provincia ho: public static Provincia[] instantiateElencoProvincie(){ Provincia elencoProvince[] = new Provincia[100]; elencoProvince[0].setProvincia("aosta","AO","Valle d'Aosta"); return elencoProvince; } e nel Main Provincia elencoProv[] = Provincia.instantiateElencoProvincie(); però a quanto pare non funziona..se infatti provo a fare: System.out.println(elencoProv[0].getProvincia()); mi restituisce l'eccezione NullPointerException... ma perchè il puntatore è a Null? in teoria io ho istanziato l'array e l'ho passato a elencoProvince...o no?
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
funziona!...ho cambiato le cose in questo modo :
nella class Provincia public static void instantiateElencoProvincie(Provincia elencoProvince[]){ elencoProvince[0].setProvincia("aosta","AO","Valle d'Aosta"); //return elencoProvince; } e nel main Provincia elencoProv[] = new Provincia[100]; for(i=0;i<elencoProv.length;i++){ elencoProv[i] = new Provincia("empty","empty","empty"); } Provincia.instantiateElencoProvincie(elencoProv); infatti ora se accedo al primo elemento non ottengo errori ma il contenuto dell'oggetto ![]() ![]() ![]()
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:07.