Portál AbcLinuxu, 14. května 2025 01:02

Dotaz: Java databaze

4.11.2009 17:50 Pavel
Java databaze
Přečteno: 4201×
Odpovědět | Admin
Zdravim, jako semestralni praci mam zaukol naprogramovat jednoduchou databazi v Jave. Jelikoz s programovanim nemam moc zkusenosti tak si stim nevim moc rady. Potreboval bych nejak popostrcit, objasnit princip.....

Databaze mi bude ukladat udaje o filmech: nazev, zanr, reziser, rok vydani. Dale by mela mit moznost nacitani z .txt souboru, a vyhledavani podle vice parametru(podle nanzvu a zanru), a razeni podle nazvu.

Napdalo me pouzit ArrayList(2 rozmerne pole Stringu). Ale nejak nevim, jak vnem pote budu vyhledavat, jak ho budu tridit,....

Predem diky za rady


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.11.2009 18:22 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: Java databaze
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já sice Javou nemluvím, ale… jsi si jistý, že máš za úkol znovu vynalézat kolo? V praxi se jako úložiště dat používají hotové databázové systémy, se kterými se tvá aplikace dorozumívá prostřednictvím SQL (většinou). DBS umí mj. vyhledávat, třídit, zajišťují integritu dat atd. Programovat si něco takového na koleně může být velké (opravdu velké) cvičení, ale IMHO ne moc smysluplné…
Heron avatar 4.11.2009 18:54 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Java databaze
Zde se "databází" myslí spíše kartotéka, než plnohodnotný SQL server.
4.11.2009 19:40 moira | skóre: 30 | blog: nesmysly
Rozbalit Rozbalit vše Re: Java databaze
Vzhledem k tomu, že je v textu zmíněna semestrální práce a .txt soubor, hádám že onou "databází" se myslí obdoba csv souboru. A k dotazu, udělej si třídu pro uložení všech údajů o jednom filmu a pak to naházej do nějakého listu. V žádném případě NE 2-rozměrná pole. Ty jsou dobrá tak na matice :)
Překladač ti nikdy neřekne: "budeme kamarádi"
4.11.2009 22:16 ZAH | skóre: 43 | blog: ZAH
Rozbalit Rozbalit vše Re: Java databaze
ArrayList kerý tazatel navrhuje vyhovuje, jde o podtřídu AbstractList, která asi splňuje co potřebuje. Bude muset implementovat rozumné hledání.

4.11.2009 22:55 Pavel
Rozbalit Rozbalit vše Re: Java databaze
ano, vim o moznosti "provazani" s SQL, nebo XML, ale radeji bych pouzival ciste jen javu- jelikoz SQL ani XML neovladam....... Mohl by mi nekdo z Vas prosim trochu podrobneji popsat jak se to resi? kdyz budu mit jeden ArrayList, tak kazdy jeho element bude 1 instance tridy propiska(konkretni film)? nebo jich musim mit vice? Nebo je lepsi pouzit nejaky jiny "kontejner"?(LInkedList, HashMap,....??)

Vyseldna prace nemusi byt nic extra.....staci i konzolove rozhrani(pokud nezbude cas udelat GUI)....

Predem diky za rady
5.11.2009 05:51 ZAH | skóre: 43 | blog: ZAH
Rozbalit Rozbalit vše Re: Java databaze
Pro každý film jdna instance třídy Popiska. Přečti si něco o Collection.
5.11.2009 09:33 razor | skóre: 33
Rozbalit Rozbalit vše Re: Java databaze
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podle mě je nejsnažší použít objektovou db např db4o. Mrkni se na tutoriálek.
5.11.2009 11:58 moira | skóre: 30 | blog: nesmysly
Rozbalit Rozbalit vše Re: Java databaze
Anebo ještě druhá možnost - serializovat celý List do souboru např. pomocí XStream.
Překladač ti nikdy neřekne: "budeme kamarádi"
5.11.2009 16:21 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Java databaze
Odpovědět | | Sbalit | Link | Blokovat | Admin
Velmi zalezi na tom, co vlastne je zmyslom zadania: precvicit si programovanie v Jave, alebo si skusit navrhnut velmi jednoduchy databazovy engine. Skus upresnit toto, mozno dostanes relevantnejsie rady.

5.11.2009 23:20 XY
Rozbalit Rozbalit vše Re: Java databaze
Odpovědět | | Sbalit | Link | Blokovat | Admin
cau, osobne by som to riesil takto nejako:

vytvoril by som si triedu Movie, ktora by mala vsetky potrebne atributy (to je ta zmienovana popiska) vytvoril by som si triedu MovieRepository, ktora by mala metody ako napr: add, remove, findByXY, findByXY2OrderByTitle... (to bude databaza)

na zaciatok by som zacal implementovat jednoduche metody ako add, remove, na zaciatok staci ak si budu ukladat filmy do List-u, osobne by som volil LinkedList

potom by som pristupil k zlozitejsim metodam, ako su napr. findre ak to nemusi byt nejaka moc vychytrala databaza, tak by som to robil sekvencnym prehladavanim toho listu, ak to musi byt vychytrale, tak by som sa zamyslel nad indexovanim, napr. pomocou HashMap, neukladal by som filmy iba do toho listu, ale aj do mapy, napr. ak chcem mat index nad polickom 'nazov', tak by som si pridal mapu ktorej kluc by bol nazov a hodnota zoznam filmov (potom ak hladas podla nazvu, tak staci preskenovat iba zoznam pod tym klucom)... add a remove ti budu transparentne plnit ako list, tak mapu...

sortovanie by som riesil pomocou Comparator-ov

ukladanie, nacitanie zo suboru by som riesil napr tak ze do Movie by som pridal nejake medody typu: toCsvValue a fromCsvValue (asi staticka), ktore by dokazali ukladat / nacitavat 1. instanciu triedy do 1. riadku csv suboru a do MovieRepository by som si pridal nejake metody, ktore by spracovavali subor a: pri ukladani by postupne presli cely zoznam a naplnili subor jednotlivymi csv hodnotami pri nacitavani by postupne z kazdeho riadku vytvorili instanciu a pomocou add metody by si ju vlozili do seba

... ak som spravne pochopil zadanie, tak by to mohlo uspokojit zadavatela ;)
6.11.2009 15:24 Pavel
Rozbalit Rozbalit vše Re: Java databaze
Ahoj moc diky za rady

a co se tyce programu jde mi hlavne oto se trochu naucit v jave(proto bych do toho nerad motal SQL nebo XML,....) jde mi oto se naucit praci s textovymi soubory(Streamy, .....), prace se tridami(trida, instance, .....), pokud bude cas tak i zaklady GUI(nake to tlacitko, textbux, inputbox,...)

uz sem si neco malo zkousel: jednak sem si vytvoril tridu propiska(nakonec to bude databaze propisek, jelikoz je sbiram:-)), s vlastnostmi nazevfirmy, barva, barvapopisu, stav, nake metody(setNazev, getNazev,....).....zkusil sem si vytvorit par instanci a celkem mi to slo.....viz: http://pastebin.com/m4ed95ce6

ale kdyz sem pak chtel instance nekam zapisovat(do array listu) a ten pak tridit, zapisovat ho do *.txt tak uz mi to neslo:-(.....

tak sem si zkusil jen praci s arraylistem(zapis retezcu , trideni, zapis a cteni z txt,....) ale vse sem resil jen pomoci stringu a nacitanmin radku(s OOP to nema nic spolecneho:-()
6.11.2009 15:32 Pavel
Rozbalit Rozbalit vše Re: Java databaze
tady este ukazka prace s arraylistem: http://pastebin.com/m748701b5
6.11.2009 17:38 razor | skóre: 33
Rozbalit Rozbalit vše Re: Java databaze
Buď drsnej a rovnou používej generika :)
List<String> seznamPropisek = new ArrayList<String>();
Výhoda je, že to pak ručně nemusíš přetypovávat.
6.11.2009 21:10 Pavel
Rozbalit Rozbalit vše Re: Java databaze
tak tomu moc nerozumim......to se mi jako muj objekt(propiska) "pretypuje" na String??
7.11.2009 10:38 razor | skóre: 33
Rozbalit Rozbalit vše Re: Java databaze

To ne. Koukal jsem na tvoje zdrojáky a zatím tam vkládáš pouze stringy a ručně to přetypováváš. Tak proto List<String>. Až budeš mít nějakou třídu Propiska, tak pak to bude List<Propiska>

7.11.2009 11:23 impact | skóre: 11 | blog: _
Rozbalit Rozbalit vše Re: Java databaze
Generika sluzia na definovanie typu vo vseobecnej objektovej kolekcii akou je napr. ArrayList. Do ArrayList mozes vkladat akekolvek objekty (podtriedy triedy Object). Generika zabezpecuju kontrolu typov pri compile-time. Pomocou tych znaciek < a > definujes ake objekty budes vkladat. Cize kompilator je mudrejsi, pretoze vie, ze tam budes davat String a nie Object.
8.11.2009 20:20 kulik
Rozbalit Rozbalit vše Re: Java databaze
Sorry, ale takove veci jsou rozebirany napriklad v tutorialech primo od sunu, dale ve stovkach clanku na webu a v kazde knizce o jave pro zacatecniky. Neocekavej, ze te v diskusi na abclinuxu nekdo "z niceho" nauci programovat - i kdyby to bylo mozne, je to pro vsechny zucastnene vcetne tebe zoufale neefektivni.
11.11.2009 11:36 Pavel
Rozbalit Rozbalit vše Re: Java databaze
ja taky necekam ze to za me nekdo udela, to vubec ne! jen jsem chtel poradit, jake je vhodne reseni, co pouzit(pole, arraylist, linkedlist,....) co pro me(a muj program) bude vhodne a ne moc slozite.... a pokud nekde na internetu je naky navod jak udelat v jave jednoduchou databazi(ne pompoci SQL ani XML,...) tak mi sem prosim hod odkaz, ja nic nenasel.....
11.11.2009 15:52 kulik
Rozbalit Rozbalit vše Re: Java databaze
No ja jsem nemyslel, ze je nekde navod jak udelat databazi, i kdyz to nevylucuju. Neni mi uplne jasne, co mas tou databazi presne na mysli, ale verim, ze po prostudovani napr. http://java.sun.com/docs/books/tutorial/ cast Collections s tim nebudes mit problem.
MaFy avatar 11.11.2009 18:36 MaFy | skóre: 24 | blog: kecy | Praha
Rozbalit Rozbalit vše Re: Java databaze
No, jak to tak procitam, tak predpokladam, ze studujes prvni rok na FEL CVUT. Urcite se najde profesor, ktery ti rad pomuze, nebo te nakopne ;-) Preci jen do odevzdani seminarky je dost casu ;-)
Lidé se dělí do 10 skupin. Na ty, co rozumí binárnímu kódu a na ty ostatní...
3.12.2009 22:31 TOT
Rozbalit Rozbalit vše Re: Java databaze
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, tak jak si to vyřešil? Právě ted mám taky takový úkol :-) a lámu si furt hlavu

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.