Datenbank mit Java

Helios co.

Lt. Commander
Registriert
März 2005
Beiträge
1.863
Hallo,
ich habe ebín kleines Problem.
Und zwar hab eich die Aufgabe eine kleine Datenbank in Java zu erstellen.
Dabei sollen Werte in 5 Kategorien (also z.B. index, Name, Alter ,Adresse...) erstellt werden und es soll eine unbegrenzte Anzahl an Werten rein...d.h. ein statisches Array kommt nicht mehr so einfach in Frage.

Da ich ein Gebilde brauche, welches eine undefinietre Größe akzeptiert, bin ich bei meiner Suche auf "Hashmap" gestoßen.
Hier habe ich aber das Problem, dass ich nur (id,string) speichern kann aber ich bräuchte ja z.B. (id,string,string,string,int)

Das ist aber damit nicht ganz so einfach realisierbar...leider.

Hat jemand eine Idee oder einen guten Rat!!

Jede Hilfe ist willkommen!!!
 
Hi,

du könnstest das hier verweden:

hSQL

Ist eine in Java geschrieben SQL Datenbank, die in deinem Programm dann mit läuft (also keinen Server benötigt)

Gruß Tobi
 
Cooles Teil, wusste garnicht dass es soetwas gibt.
Leider bringt mirdas für meine Aufgabe nichts, da der ganze code von mir sein soll.
:(
Aber trotzdem vielen dank, ich werde mir das Teil für private Zwecke mal genauer anschauen.
 
realisier es doch über mehrdimensionale arrays

z.B. DATENBANK[tabellenname][ID][spaltenname: WERT]
oder DATENBANK[tabellenname][spaltenname: WERT(trennzeichen)WERT(trennzeichen)WERT...]

ich hoffe ich konnte dir etwas helfen allerdings von java selbst habe ich keine ahnung
 
Also wenn ich mir die API-Doku zu HashMap anschaue, dann kann ich Objekte beliebiger Komplexität in eine Hashmap einfügen.
Ich kann zwar mit den neuen Features von Java 5 noch nix anfangen, weil ich das noch nie benutzt habe, aber wenn ich das hier lese:
Code:
public V put(K key,
             V value)

Parameters:
    key - key with which the specified value is to be associated.
    value - value to be associated with the specified key.
Das liest sich doch wie: Speicher rein was du willst.

Guck dir mal die Doku genauer an.
 
An mehdimensionale Arrays habe ich auch schon gedacht, aber das Problem ist, dass Arrays eine feste Größe haben müssen, aber ich brauche ein Konstrukt,welches Prinzipiell undendlich Elemente aufnehmen kann.
Man kann das Problem zwar umgehen, indem man einfach sagt, dass falls Ende des Arrays erreicht ist, ein neues Array angelegt werden soll und mittels arrayCopy kopiert...das wird aber bei über 40k Einträgen ein ernszunehmendes Problem.

-----------------------------------------------------------------------------------------------------------------------
Ich habe mir die API was HashMap angeht auch schon angeschaut und im Prinzip hast du recht.
Man kann, wenn ich es richtig verstanden habe(und wie du ja gesagt hast)einfach einen Index (Key) angeben und dafür ein Objekt...und dieses Objekt kannja dann prinziepiell aus einer unbegrenzten Anzahl aus anderen Objekten (Name, Nachname..) bestehen.
Aber kann ich dann auch, wenn ich eine Such-oder Sortierfunktion definiere, auch z.B. nach Name suchen/sortieren lassen?

Theoretisch nur, indem man alle Indizes der Reihe nach durchgeht...

-------------------------------------------------------------------------------------------------------------------

Was genau meinst du mit einem selbstkonstruirten Datentyp..
also einfach ein Datentyp, der aus Id,String,String,Int usw. besteht?

Wenn ja, kann ich dann trotdem, sagen wir, nach nur einem String suchen lassen???



Ps. danke schon mal für die Hilfe!!!
 
Also ich meinte, dass du dir eine eigene Klasse schreibst, die alle gewünschten Daten enthält, so wie z. B.

public class Person {
public String name;
public Date geburtsDatum;
...
}

und dann eine Liste erzeugst, deren Elemente Objekte aus deiner erzeugten Klasse sind. Dann kannst du natürlich mit
Person mutter;
mutter = new Person();

und mutter.name etc. drauf zugreifen und dann in allen erzeugten Objekten den name durchsuchen.

Ich hoffe, das war einigermaßen verständlich.
Ansonsten siehe auch
http://www.boku.ac.at/javaeinf/jein1.html#object
 
Allerdings solltest Du die Klassenattribute auf "private" setzen und für den Zugriff auf die Werte entsprechende get- und set-Methoden implementieren. Public-Attribute sind nicht unbedingt sauberer Programmierstil und machen nen ziemlich schlechten Eindruck beim Prof/Lehrer.

P.S.: Wenn ihr noch nicht soweit seid mit dem selber implementieren von Klassen, dann kannst Du das Problem auch durch die Verschachtelung von zwei Vektoren lösen. Vektoren (vector) haben keine feste Größe und können mit beliebigen Objekttypen gefüllt werden.
Legst also z.B. einen Vektor pro Datensatz an und speicherst die Vektor-Datensätze wiederum in einem anderen Vektor. Beachte dabei, dass Vektoren keine einfache Datentypen wie int annehmen. Diese musst Du also dem Vector als Integer-Objekt überreichen.
Hashtables brauchst Du eigentlich nur, wenn Du auf Datensätze nicht über Index, sondern über Key zugreifen willst.
 
Zuletzt bearbeitet:
Zurück
Oben