Methoden Daten aus einer SQL-Abfrage in eine mehrdimensionales Array einlesen

mrtyu

Mitglied
Hallo zusammen,

ich bin neu hier :) Und habe die folgende Frage: Ich versuche Daten aus einer Oracle-Datenbank per SQL auszulesen und sie in einem kleinen Java-Programm zu verarbeiten (einmal einfach nur in tabellarischer Form und einmal in Form einer Grafik darzustellen).

Die Abfrage klappt problemlos, die Daten werden auch wunderbar ausgelesen, nur weiß ich leider nicht, wie ich sie in mein data-Objekt für die Tabelle reinbekomme :oops:


Mein Ansatz bis jetzt:

Java:
 	  // Datenbankabfrage:
 	  Connection conn = Verbindung.getConnection();
 	  if (conn != null) {
 	     try {
 	        Statement stmt = conn.createStatement();
String query = "SELECT ... FROM ... WHERE ..." // hier klappt es noch prima

 	        System.out.println(query);
 	        ResultSet erg = stmt.executeQuery(query);


 	        
 	        // Aufbau der Tabelle aus der vorhergehenden Abfrage

 	       while (erg.next()) {
 	        	System.out.println(erg.getString("a") + " " + erg.getString("b") + " " + erg.getString("c") + " " + erg.getString("d"));

 	        	System.out.println(erg.getString("a"));
 	        	
 	        	String[][] data = new String [][]{{erg.getString("a")}, {erg.getString("b"), erg.getString("c")}}; // hier ist vermutlich der Fehler...
 	        	
 	       }
      
  		   JTable table = new JTable( data, title );
		   rahmen.add( new JScrollPane(table) );
		   rahmen.pack();
		   rahmen.setVisible( true );
 	        
 	        
 	        stmt.close();
 	     }
 	     catch (SQLException sqle) { System.out.println(sqle.toString()); }
 	  }
 	  else JOptionPane.showMessageDialog(null,"Keine Verbindung mit der Datenbank moeglich!");
 	  
     }
   };


Ein weiteres Problem besteht darin, dass in der Zeile "JTable table = new JTable( data, title );" Eclipse meldet: "Data cannot be resolved to a variable", obwohl die Variable in der gleichen Methode liegt.

Für den einen oder anderen Hinweis wäre ich sehr dankbar :)


Viele Grüße und ein schönes Wochenende Euch allen!

mrtyu
 

z-mon

Bekanntes Mitglied
Hallo und herzlich Willkommen im java-forum mrtyu,

für mich ist deine Problematik noch nicht ganz klar. Was genau hast du mit
Java:
String[][] data = new String [][]{{erg.getString("a")}, {erg.getString("b"), erg.getString("c")}};
vor und wie sieht dein title Variable aus?

Ist dir denn klar, das du jedes mal mit String[][] data = new String [][]{...} deine alte Variable überschreibst?
 

mrtyu

Mitglied
Hallo z-mon,

vielen Dank für die Antwort!

Was genau hast du mit
Java:
String[][] data = new String [][]{{erg.getString("a")}, {erg.getString("b"), erg.getString("c")}};
vor und wie sieht dein title Variable aus?

Ist dir denn klar, das du jedes mal mit String[][] data = new String [][]{...} deine alte Variable überschreibst?


Stimmt, ich war gestern Abend wohl etwas verwirrt :)
Ich frage jetzt etwas konrekter: Ich bin zwischenzeitlich auf diesen FAQ-Thread gestoßen. Was ich haben will, ist die simpelste Variante 1 (2d-Array) - und wenn ich das Array, wie in dem Beispiel gezeigt, per Hand im Code eintrage, klappt das auch prima. Mein Problem besteht nur darin, dass ich nicht weiß, wie ich die entsprechende Schleife fomuliere, die die Daten aus der SQL-Abfrage ausliest. Könntest Du mir einen Ansatz dazu geben?


Vielen Dank und viele Grüße!

mrtyu
 

z-mon

Bekanntes Mitglied
Also wenn ich das jetzt richtig verstanden habe weißt du nicht wie du dein 2-dimensionales Array füllst?

Du musst bei der Initialisierung des Arrays die Größe des Reslts mitgeben und anschließend halt an den entsprechenden Stellen das Array füllen.

Wie zum Beispiel
Java:
myArray[i][0] = "Hallo";
myArray[i][1] = "Welt";

Wobei i dein Durchlaufzähler ist.
 

fastjack

Top Contributor
das mit dem Array würde ich gleich vergessen. Schreibe Dir eine Datenklasse, deren Objekte Du dann in Deine JTable anzeigst. Die Datenobjekte befüllst Du aus dem ResultSet und fügst sie zu einer Liste an.
 

mrtyu

Mitglied
Vielen Dank für die Antworten!

Im Prinzip handelt es sich bei meiner Aufgabe um eine ganz rudimentäre Applikation, die lediglich die Inhalte aus der Datenbank herausholt und sie einmal statisch in die Tabelle schreibt - weiter nichts.

Insofern dachte ich eben an die einfache Möglichkeit... Aber ich habe nun tatsächlich Probleme damit, das zweidimensionale Array zu füllen. Bin eben noch Anfänger in Sachen Java :autsch:


Folgender Code bereitet mir nun Schwierigkeiten:

Java:
 	        int anzahlDerZeilen = 0;
 	        if (ergCount.next()){
 	        	anzahlDerZeilen = ergCount.getInt(1);
 	    	  }
 	        ergCount.close();
 	        
 	        System.out.println(anzahlDerZeilen);

 	        
 	        // Aufbau der Tabelle aus der vorhergehenden Abfrage

 	        String[][] data = new String[anzahlDerZeilen][4];
 	        
 	        
 	       String[] title = new String[]{ "A", "B", "C", "D" };
 	       
 	       while (erg.next()) {
 	        	System.out.println(erg.getString("a") + " " + erg.getString("b") + " " + erg.getString("c") + " " + erg.getString("d"));


// Array fuellen:
 	           for (int i=0; i<data.length; ++i) {
 	        	   System.out.println("i: "+i);
 	              for (int j=0; j<data[i].length; ++j) {
 	            	 System.out.println("j: "+j);
 	                data[i][0] = erg.getString("a");
 	                data[i][1] = erg.getString("b");
 	                data[i][2] = erg.getString("c");	                
 	                data[i][3] = erg.getString("d");
 	              }
 	           }
 	           
 	       }

Es läuft im Grunde schon fast richtig, nur werden leider alle Werte in der Tabelle vom letzten Wert überschrieben... Könnte mir jemand einen Hinweis auf meinen Denkfehler geben? ???:L


Danke und viele Grüße

mrtyu
 

gafktor

Mitglied
Hallo mrtyu,

scheint du hast dich in den geschachtelen Schleifen verfahren.

in Zeile 17 gehst du deine Abfrage-Results durch

innerhalb dieser Schleife läufst du in Zeile 22 jeweils dein komplettes Array ab und trägst somit jeweils den aktuellen Satz aus der while Schleife in dein Array ein. Somit kann das Array immer nur die Daten des letzten while enthalten.

die for Schleife in Zeile 24 kannste dir eigentlich sparen, da du innerhalb dieser Schleife die Zellen eh hart codierst (data[0] -> data[3] einträgst. Solls abhängig der Zellenanzahl innerhalb der Schleife passieren wäre eher data[j] angebracht.

Vielleicht hifts ja deinen Gedankenknoten zu lösen
mfg
gafktor
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
P Methoden ausgelesene (CSV-) Daten in Liste einer anderen Klasse einlesen Java Basics - Anfänger-Themen 0
M Junit Tests durchführen, die eine Verbindung zu einer Daten erfordern Java Basics - Anfänger-Themen 3
J Daten von einer PHP Datei ablesen Java Basics - Anfänger-Themen 1
B daten speichern in einer tabelle Java Basics - Anfänger-Themen 5
MiMa Mehrere Daten in einer Variable? Java Basics - Anfänger-Themen 25
R Alle Daten einer HashMap ausgeben Java Basics - Anfänger-Themen 17
C Daten einer JTable lassen sich nicht ändern Java Basics - Anfänger-Themen 6
B Daten in Instanz einer Klasse ändern / abfragen Java Basics - Anfänger-Themen 12
S Frage zum speichern der Daten in einer LinkedList Java Basics - Anfänger-Themen 2
Dit_ Daten vom Server in einer Schleife Java Basics - Anfänger-Themen 4
Z Array mit daten einer datenbankbefüllen und dies an eine tabelle geben Java Basics - Anfänger-Themen 6
K daten von jtable auslesen und in einer anderen klasse anzeigen und bearbeiten Java Basics - Anfänger-Themen 7
A Programm mit Daten einer Datei testen Java Basics - Anfänger-Themen 4
T Speicherprobleme von daten in einer datei Java Basics - Anfänger-Themen 5
S Daten aus einer JTable in eine .doc-word- datei exportieren? Java Basics - Anfänger-Themen 7
R Hilfe! Daten aus einer excelliste auslesen und. Java Basics - Anfänger-Themen 3
G Daten in einer Klasse "speichern" Java Basics - Anfänger-Themen 13
U daten aus einer datenbank aus lesen und einfügen Java Basics - Anfänger-Themen 2
J Kann man Daten innerhalb einer Datenstruktur verändern? Java Basics - Anfänger-Themen 4
T Daten in einer Datei überschreiben Java Basics - Anfänger-Themen 13
N Daten von einer Klasse an eine andere übergeben? Java Basics - Anfänger-Themen 4
D ComboBox mit Daten einer Datenenbank Java Basics - Anfänger-Themen 8
P Daten aus Datenbank in einer JComboBox darstellen Java Basics - Anfänger-Themen 4
T Daten aus einer .csv Datei in einen Vector einlesen Java Basics - Anfänger-Themen 3
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Daten in Echtzeit übernehmen Java Basics - Anfänger-Themen 5
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A Literale für primitive Daten Typen Java Basics - Anfänger-Themen 4
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D Sportwetten Daten Atomatisch analysieren um optimale Strategie zu erhalten Java Basics - Anfänger-Themen 6
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Minesweeper - Daten Java Basics - Anfänger-Themen 46
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
WPS1000 Input/Output Wie aktiviere ich den Daten Transfer von der RS232 in meine Java Applikation Java Basics - Anfänger-Themen 2
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
S Daten lesen und speichern Java Basics - Anfänger-Themen 26
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
H Passwortmanager, Sicherheit der Daten Java Basics - Anfänger-Themen 12
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
M Erste Schritte Speichern von mehreren Daten Java Basics - Anfänger-Themen 3
F Daten von Thread an den aufrufenden zurückgeben Java Basics - Anfänger-Themen 22
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
F Http Post von mehreren Daten Java Basics - Anfänger-Themen 5
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
W Best Practice problemabhängige Persistentmachung von Daten Java Basics - Anfänger-Themen 6
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
N Daten/Formular per POST an Firefox/Browser senden Java Basics - Anfänger-Themen 7
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
V Einlesen von Daten Java Basics - Anfänger-Themen 8
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
J Daten im Programm speichern Java Basics - Anfänger-Themen 14
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
O Probleme mit CSV Daten Java Basics - Anfänger-Themen 10
M Arrays: Trennung von Daten und Darstellung Java Basics - Anfänger-Themen 1
S Daten aus Array in Klasse übertragen Java Basics - Anfänger-Themen 12
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
R Daten via Post an php Script senden Java Basics - Anfänger-Themen 1

Ähnliche Java Themen


Oben