24. oktober 2011 - 09:07Der er
13 kommentarer og 1 løsning
Smarteste måde at læse data: HashMap eller JDBC?
Hejsa, nu rammer jeg lige tredje spørgsmål om et hobby-projekt jeg er gået igang med i Java! Jeg har nu drejer mit fokus iver på at hente nyhedsstreamers ned til en database - hvilket jeg har fået til at virke. Dog ikke med preparedstatements. Ideen er, at jeg ører en løkke der henter nye artikler ind i min database hvert 30. sekund. Den gør det fra samme sider, 12 timer om dagen.
Nu vil jeg så lave et program der analyserer det indhentede data. Men jeg er lidt i tvivl om den smarteste metode. Mit umiddelbare bud var, at lave kald til min database i samme frekvens som jeg henter artikler (kan man sætte den til at trigge når der er ny data?)... Det lægger bare en del beslag på databasen - kan man i stedet bruge et HashMap eller noget smartere?
Det kommer meget an på hvad du ønsker at bruge data'en til men typisk vil jeg mene at HashMap er en god løsning hvis du er ligeglad med om din indsamlede data går tabt når programmet lukkes eller fejler og går ned.
Databasen er god til at gemme data på harddisken men hvis du er ligeglad med det er det en nobrainer.
Hvis du vil gemme dine data ville jeg vælge at have et hashmap som blev opdateret med de nye entries efter du havde lagt dem i databasen, evt. lige efter du havde lagt det i databasen således at du slipper for først at ligge det i databasen hvorefter du skulle hive det ud igen.
Der er ikke en standard maade at notificere et program naar et andet program gemmer i databasen. Der findes vise muligheder med de fleste databaser, men hvis PreparedStatement er svaert, saa er det nok ikke noget for dig (det er 20 gange saa svaert som PS).
Hvis vi snakker om 2 programmer og en in memory data struktur vil det ikke umiddelbart fungere. Du vil skulle bruge noget a la JBoss TreeCache for at dele den in memory struktur.
Hvis du kun har 1 progam eller 2 client programmer som snakker med et server program er det nemt at bruge en in memory data struktur.
faktisk skriver jeg ikke at PS er svaert - jeg skriver at hvis man betragter PS som svaert, saa er det helt udelukket at lave triggers som sender notifikationer ud paa en message queue ved aendringer
Jeg har læst lidt om HashMap nu, men det jeg lidt mangler er noget dybde i data. Altså at man kan smide fx en ley ind, og så flere variabler/data ind. Lidt som i en tabel med flere kolonner. Jeg vil gerne have plads til dato, forfatter, titel, kolofon, tekst osv. Evt bare med et beskrivelse ord for hver attribut- det trorjeg ikke man kan i HashMap vel? Kan man det i noget andet?
Jeg troede egentligt at arraylist kunne det HashMap kan og at HashMap kunne det jeg skulle bruge!:/
Hmm, okay - det ved jeg sgu ikke lige hvordan jeg gør :) Det må jeg læse lidt mere om, eller ende ud i endnu et spørgsmål ;)
Tokai svarede egentligt på mit spørgsmål først og fremmest... Men Arne har også givet en del inputs... Er i OK med en 40/20 fordeling? Og gider i smide svar?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.