KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: Datenbank in Java durchsuchen
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Wäre interessiert ob sich hier vllt jemand mit Java auskennt.
Bin ein ziemlicher Neuling in dem Sektor, und versuche mich gerade an einem kleinen Programm.
Ablaufen soll das ganze so:

Der User bekommt in einem Konsolenfenster verschiedene Fragen gestellt, die Antworten/Werte werden in Variablen gespeichert. (Das hab ich schon selbst hinbekommen)

Nun soll das Programm in einer schon vorprogrammierten Liste/Datenbank genau DEN Eintrag herausfischen, dessen Variablenwerte am nähesten zu den vom User eingegbenen passen und diesen ausgeben.

Zur besseren Vorstellung:

Zitat:
Bitte geben sie Wert ein für var1: [user_input]
Bitte geben sie wert ein für var2: [user_input]
......


Die Liste die überprüft werden soll.

Zitat:
-)Eintrag 1: var1 = 500; var2 = 300; ...
-)Eintrag 2: var1 = 700; var2 =40;....
-)....


Leider hab ich echt keine Ahnung wie ich eine solche Liste aufstellen soll, geschweige denn sie dann zu durchsuchen.
Wäre schon über ein Stichwort zum googlen froh, weiß leider echt nicht nach was ich suchen soll.
thx

Und wie kommen neue Einträge in die Datenbank?
Entweder schreibst du einfach die einträge in nem gewissen format in eine Datei, zbsp var1;var2\n oder du nimmst json oder nen serialized Array oder nosql oder oder oder. Gibt nen haufen möglichkeiten.

Whynot :
Und wie kommen neue Einträge in die Datenbank?
Entweder schreibst du einfach die einträge in nem gewissen format in eine Datei, zbsp var1;var2\n oder du nimmst json oder nen serialized Array oder nosql oder oder oder. Gibt nen haufen möglichkeiten.



Also die Liste/Datenbank schreib ich/der Programmierer schon vorher, um die muss sich der Endnutzer nicht kümmern.

Wenn die Anzahl der Listeneinträge sich mitunter ändert, solltest du dir mal die ArrayList ansehen, bei einer festgelegten Anzahl nimm einfach ein Array, das ist ziemlich simpel.

Zitat:
Nun soll das Programm in einer schon vorprogrammierten Liste/Datenbank genau DEN Eintrag herausfischen, dessen Variablenwerte am nähesten zu den vom User eingegbenen passen und diesen ausgeben.


Alle Einträge in einer Schleife durchlaufen lassen und den Unterschied jedes einzelnen zu den eingegebenen Werten prüfen, den Eintrag mit dem bisher kleinsten Unterschied in einer Variable speichern und nach der Schleife ausgeben.

mal ne andere frage: kann man keine abfragen machen? ich bin auch ein java anfänger, aber bei php und c kann man doch abfragen machen

Kiba113 :
mal ne andere frage: kann man keine abfragen machen? ich bin auch ein java anfänger, aber bei php und c kann man doch abfragen machen


Ja, kann man, aber nachdem der OP mehr von Listen als Datenbanken geschrieben hat nehme ich an er meint einfach eine Collection in der er ein paar Einträge speichern und durchsuchen kann.

Ich werd mir die ArrayList mal genauer anschauen. Sollte alles so gut laufen wie ich es will, dann sollen das dann aber schon ein paar Tausend einträge werden. Wär ne ArrayList da immer noch so praktisch?

Hab mir die ArrayList nochmal genauer angeschaut. Die müssen ja am Anfang der Klasse erst aufgebaut/initialisiert werden. Das wäre mir persönlich eher echt viel zu ineffizient, da es sich wirjlich um eine Menge Einträge handeln soll.
Da wäre es mir lieber wenn ich die Liste selbst formatiert in ein Dokument schreibe. Aber wie greife ich dann von Java aus auf die Datei zu? und wie lese ich etwas aus?

loader72 :
Da wäre es mir lieber wenn ich die Liste selbst formatiert in ein Dokument schreibe. Aber wie greife ich dann von Java aus auf die Datei zu? und wie lese ich etwas aus?


In die ArrayList kannst du es trotzdem speichern und am Programmstart mit FileReader und InputStream alles einlesen.

EDIT:
Also zuerst die Daten in einer Datei speichern. Danach musst du die Datei per FileReader, InputStream etc. öffnen, jede Zeile einzeln einlesen und die enthaltenen Daten z.B. in einer ArrayList speichern. Danach kannst du gut auf alle Einträge zugreifen. Da sollten genug Codebeispiele zu finden sein.

Kann ich das ganze lösen in dem ich darsu einfach ganz viele Objekte Eintrag(var1,var2) erstelle? Wäre hald um einiges leichter für mich als Anfänger. Da besteht dann hald die Frage, wo da die Grenzen liegen. Wie viele Objekte einer Klasse sollten den höchstens gleichzeitig erstelllt werden?

loader72 :
Kann ich das ganze lösen in dem ich darsu einfach ganz viele Objekte Eintrag(var1,var2) erstelle? Wäre hald um einiges leichter für mich als Anfänger. Da besteht dann hald die Frage, wo da die Grenzen liegen. Wie viele Objekte einer Klasse sollten den höchstens gleichzeitig erstelllt werden?


Sicher, würde ich schon so machen, für jedes Listenelement ein Objekt das die einzelnen Werte für den Eintrag enthält. In einer ArrayList etc. kann man dabei ganz einfach diese Objekte reinlegen.
Limit ist da nur der Speicher, und der wird bei Java leider begrenzt. Wenn es sich nur um Zahlen etc. handelt dürftest du aber kaum Probleme bekommen wenn es nicht weit über ein paar Tausend Datensätze geht.

Referenz-URLs