Java und MySql

MrOz

Newbie
Registriert
Juli 2005
Beiträge
5
Hallo.

Ich habe folgendes Problem:

Ich habe eine MySql-Datenbank, in der eine Tabelle mit 3 Spalten ist. Nun will ich mit einem Java-Programm die Tabelle zeilenweise auslesen und in Abhängigkeit einer Spalte die Werte in ein 2-dimensionales Array speichern.

Ich versuch mal ein Beispiel zu geben:
Spalte 1 kann die Werte zwischen 0-35 annehmen. Solange der Wert <= 10 ist, sollen die Werte der Spalten 2 und 3(X und Y-Werte eines Punktes) zeilenweise ausgelesen und solange in ein Array gespeichert werden, bis der Wert der Spalte 1 in ein anderes Intervall fällt. Sobald das der Fall ist, sollen die neuen Werte in ein neues Array gespeichert werden...

Versteht das jemand ausser mir^^??

Danke schonmal für die Hilfe :-)
 
Ich seh das Problem nicht ganz.
Du kannst doch die Tabelle abfragen und die Ergebnisse nach Spalte 1 ordnen lassen.
Dann fragst du die zeilenweise ab und sicherst die Spalten 2+3 in einem Vector.
Sobald sich Spalte 1 über ein Limit bewegt, machst du nen neuen Vector.
 
Die Werte in Spalte 1 sind Messwerte, daher ist es auch möglich, dass sie sich wieder in ein kleineres Intervall ändern.

Ich muss aus den Punkten konvexe Hüllen berechnen lassen, also klappt das mit der Sortiererei nicht, da ich die Punkte natürlich in der richtigen Reihenfolge bezüglich der Messwerte brauche...
 
Hast du bestimmte Intervallgrenzen?
Wenn ja, kannst du ja die Werte in Klassen einteilen und ein Array von Vektoren anlegen, um diese aufzunehmen.
 
DIe Datenbankanbindung ist kein Problem.

Um mal ein Beispiel für die Datenbank zu geben:

Intervall 1 geht von 0-10
Intervall 2 geht von 11-20

Zeile --- Spalte1 --- Spalte2 --- Spalte3
1 --------- aaa --------- bbb ------------ 10
2 ---------ccc ---------- ddd ------------- 11
3 -------- eee ----------- fff ------------- 21
4 -------- ggg ---------- hhh ------------ 11

Nun muss ich die Zeilen 1 und 2 so abspeichern (Array oder evtl in einem Vektor oder sonst irgendwie), dass ich später daraus mit einem anderen Algorithmus darauf zugreifen kann(muss daraus eine konvexe Hülle berechnen). Aus Zeile 3 wird dann eine zweite konv. Hülle, aus Zeile 4 wieder eine anderen Hülle...

Ich weiss 1) nicht, wie(Array, Vektor ...) ich die Zeilen am besten speichern kann um später darauf zurückzugreifen und 2) wie ich aus der DB die Zeilen so auslese, dass(im obigen Beispiel) nur Zeile 1 und 2 gespeichert werden, nicht aber Zeile 4.
Denn SELECT ... FROM ... WHERE spalte3 BETWEEN 0 AND 10 würde doch auch Spalte 4 mit einbeziehen
 
Na das ist doch eigentlich ein kleines Problem.
Du fragst Select * from... ab und bekommst ein recordset.
Das kannst du zeilenweise (hasnext) abfragen und mit get(spalte)
den Inhalt sichern. Du musst dann beim sichern nur aufpassen,
wenn sich das Intervall ändert.
Als Datenstruktur würde sich anbieten ein Vector von Vectoren mit einem
Objekt als Datentyp, was deine anderen beiden Spalten aufnimmt.
Jedes Mal, wenn sich das Intervall ändert, musst du halt nen neuen
Vector erzeugen und in den "Haupt"Vector einfügen.
 
Mal sehen ob ich das richtig verstanden habe:

Mit einem Select auf Spalte1 hole ich alle Werte und speichere sie in einen Vector1.
Mit einem Select auf Spalte2 hole ich alle Werte und speichere sie in einen Vector2.
Mit einem Select auf Spalte3 hole ich alle Werte und speichere sie in einen Vector3.

Die einzelnen Positionen des Vektors3 kann ich ja abfragen und so schauen, wann sich das Intervall ändert. Wenn es sich ändert speichere ich alle Werte die vor der Position des Wechsels gespeichert sind aus Spalte1 und Spalte2 in einen neuen Vector und greife dann später auf den neuen Vektor zu?

Irgendwie denke ich, dass ich da was falsch verstanden hab... :-)
 
Wenn du mit Java eine SQL Abfrage auf eine Datenbank machst,
bekommst du ein Recordset Objekt zurück, welches die Ergebnisse der Abfrage beinhaltet.
Das sieht dann intern aus wie deine Tabelle, wenn du "Select *" genommen hast.
Über dieses Objekt kannst du mit next() zeilenweise navigieren und mit get()
aus der aktuellen Zeile und der jeweiligen Spalte den Wert holen und irgendwo hin speichern. Wie du das machst hängt von der Implementation ab. Siehe Post drüber.
 
Ahso, versuch ich auf jeden Fall mal!

Bin in meinem Programm gerade noch an ner anderen Baustelle beschäftigt, deshalb dauerts wohl etwas...
Werd aber auf jeden Fall posten, obs geklappt hat!

Danke schon mal
 
Zurück
Oben