fortlaufende Objekte durch Variable auswählen; Datenbank

  • Themenstarter Themenstarter john1337
  • Beginndatum Beginndatum
J

john1337

Gast
Hallo,
mein erster Beitrag und daher erstmal die Anmerkung, dass ihr wohl ein sehr hilfreiches und witziges Forum seid (Hab gerade die 5 Phasen des Hausaufgaben Erschleichens gelesen).

Nun aber zu meinem Problem:
Ich habe unzählige Objekte die fortlaufend nummeriert (Object1, Objekt2 ,...) und Teil einer Art unveränderlichen Datenbank(db.java) sind. Ich habe ferner eine GUI in der der User eine Variable bestimmt. Mit diese Variable(ID) soll dann ein entsprechendes Objekt ausgewählt werden und dessen Eigenschaften in ein neues Objekt (mit dem dann gearbeitet wird) kopiert werden.

Meine erste Idee war recht simpel, scheint aber nicht der Syntax zu entsprechen:
gui.java
Java:
object arbeitsobject = new object(db."dbObject"+ID.getFirstAttribute,db."dbObject"+ID.getSecondAttribute,...)

Meine zweite Idee war case zu benutzen. Das würde zwar mit Sicherheit funktionieren, aber dann wäre die eine Spalte nur mit fortlaufenden Einträgen von 1 bis 200 gefüllt. Und das sieht mehr als dämlich aus.

Daher möchte ich zum einen wissen, wie ich den oben angegebenen Code zum laufen bekommen.
Zweitens aber auch ob ihr etwas Grundlegendes ändern würdet. Stehe noch ziemlich am Anfang und mir scheint jetzt schon eine echte Datenbank anzulegen gar keine schlechte Idee ist. Später soll mit einem Objekt gearbeitet werden, dass aus verschiedenen ausgewählten Objekten (bzw. Datenbänken) zusammengesetzt wird. Ich meine bei Datenbanken nichts komplexes. Nur ints und Strings

Ist doch etwas mehr geworden als ich dachte und daher hoffe ich, dass mein Problem klar geworden ist. Sonst einfach nochmal nachfragen ;-)
Danke schon mal im voraus
 
Zuletzt bearbeitet von einem Moderator:
Wie schaut denn deine db Klasse aus?

Generell könnte man sowas über ne Map lösen. Da würde man die ID auf das Objekt mappen.
Java:
db."dbObject"+ID.getFirstAttribute
Sowas funktioniert auf jedenfall nicht 😉
 
dass es so nicht funktioniert ist mir klar, sonst müsste ich ja auch nicht fragen 🙂 wär aber schön gewesen.
map interface scheint mir etwas zu schwer zu sein. zumindest versteh ich da nur Bahnhof.

Kann aber gern noch was zur db Klasse sagen, falls euch das meinen wirren Gedanken näher bringt.
also im Grunde ist da nur der Konstruktor und ein paar Objekte drin.
Java:
public class db{
	private String name;
	private int id;
	//Konstruktor
	public object(String name,int id,){
		this.name = name;
		this.id = id;	
	}
	//getter
	public String getObjectName(){
		return name;
	}
	public int getObjectId(){
		return id;
	}
	//List of all objects
	static object object1 = new object("first", 1,);
	static object object2 = new object("second", 2,);
 
erstellen hash maps dann eine Referenz zwischen id und Objekt ähnlich wie beim Telefonbuch?
würde damit das Programm effektiver laufen als mit case?

wie rechenlastig ist es denn einige hundert objekte zu erstellen mit nochmal so vielen Einträgen?
oder kennt ihr eine bessere Möglichkeit eine Datenbank zu erstellen?
 
erstellen hash maps dann eine Referenz zwischen id und Objekt ähnlich wie beim Telefonbuch?
Ja, eine Map stellt eine Beziehung zwischen Key (deine id) und dem Value (dein Objekt) her.
Du hast über die id direkten Zugriff auf das entsprechende Objekt.

würde damit das Programm effektiver laufen als mit case?
Zumindest übersichtlicher.

wie rechenlastig ist es denn einige hundert objekte zu erstellen mit nochmal so vielen Einträgen?
Das kannst du vernachlässigen.

oder kennt ihr eine bessere Möglichkeit eine Datenbank zu erstellen?
Da gibt einige Möglichkeiten:
- CSV Datei (sehr einfach und kann verändert werden ohne das Programm neu kompilieren zu müssen)
- eine embedded DB (beispielsweise H2, etwas komplizierter, aber bietet wesentlich mehr Funktionalitäten
- ...
 

Neue Themen


Zurück
Oben