SWT-Tabelle aus JDBC füllen

Status
Nicht offen für weitere Antworten.
T

tha_dude

Gast
Hallo,

bin noch ziemlich neu in der Java-Welt und habe eine Frage zu unten stehendem Java-Code.
Nutze eclipse 3.2.0, JRE 1.5.0_05, ojdbc_14g.jar & swt-3.2 für win.

OK. Das Problem, vor dem ich stehe, ist, dass ich aus der DB nichts in die Tabelle bekomme.
Die Abfrage sollte eigentlich 5 Zeilen liefern. Damit ich überhaupt erstmal etwas bekommen, dachte ich, erstmal die erste Spalte zu füllen. Allerdings klappt noch nicht einmal das "System.out.println" und eclipse meldet auch keinen Fehler. Die Abfrage wird allerdings gestartet.
Gegooglt habe ich natürlich auch schon, allerdings sind die meisten Dinge noch ein wenig zu komplex für mich.

Wäre nett, wenn mir hier jemand weiterhelfen könnte:

Code:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;

public class MgmtTOOL {

	/**
	 * @param args
	 */
	public static Shell shell=null;
	public static Display display=null;
	private static Table table=null;
	private static TableColumn table_e_s=null;
	private static TableColumn table_e_l=null;
	private static TableItem table_ergebnis_items=null;
	private static String var1 = "123";
	private static String var2 = "ABC";
	private static String var3 = "DEF%";
	//private String ergebnis=null;
	
	public static void buildTable(){
		table = new Table(shell, SWT.BORDER);
		table.setLinesVisible(true);
		table.setHeaderVisible(true);
		table.setBounds(10, 120, 200, 100);
		table_e_s = new TableColumn(table,SWT.LEFT);
		table_e_l = new TableColumn(table,SWT.LEFT);
		table_e_s.setText("1");
		table_e_s.setWidth(50);
		table_e_l.setText("2");
		table_e_l.setWidth(50);
		table_ergebnis_items = new TableItem(table, 0);
		table_ergebnis_items.setText("0");
	}
	
	public static void build_text_interface(){
		final Text text_var1 = new Text(shell, SWT.BORDER);
		text_var1.setText(var1);
		text_var1.setBounds(10,10,30,20);
		text_var1.setTextLimit(3);
		
		final Text text_var2 = new Text(shell, SWT.BORDER);
		text_var2.setText(var2);
		text_var2.setBounds(60,10,50,20);
		text_var2.setTextLimit(12);
		 
		
		final Text text_var3 = new Text(shell, SWT.BORDER);
		text_var3.setText(var3);
		text_var3.setBounds(120,10,80,20);
		text_var3.setTextLimit(50);
	}
		
	public void build_ergebnis_text(String ergebnis){
		final Text text_ergebnis = new Text(shell, SWT.BORDER);
		text_ergebnis.setText(ergebnis);
		text_ergebnis.setBounds(120,50,80,20);
		text_ergebnis.setTextLimit(50);	
	}
	
	public static void build_buttons(){
		Button suchen_var1 = new Button(shell, SWT.PUSH);
		suchen_var1.setText("Suche");
		suchen_var1.setBounds(220,10,80,20);
		
		MouseAdapter suchen_var3 = new MouseAdapter() {
			public void mouseDown(MouseEvent e) {
				exec_SQL(var1,var2,var3);
			}
		};
		Button suchen_var2 = new Button(shell, SWT.PUSH);
		suchen_var2.setText("Suche");
		suchen_var2.setBounds(220,31,80,20);
		suchen_var2.addMouseListener(suchen_var3);
	}
	
	public static void exec_SQL(String db_var1, String db_var2, String db_var3){
		ResultSet rs = null;
		try{
			Class.forName("oracle.jdbc.driver.OracleDriver");
		}
		catch(ClassNotFoundException ex){
			System.out.println(ex.getMessage());
		}
		
		Connection con = null;
		try {
		  con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:TEST", "testschema", "testschema");
		  String query = "SELECT db_var1, db_var3 FROM test WHERE db_var1 = ? AND db_var2 = ? AND db_var3 LIKE ?";
		  PreparedStatement stmt = con.prepareStatement(query);
		  stmt.setString(1, db_var1);
		  stmt.setString(2, db_var2);
		  stmt.setString(3, db_var3);
		  rs = stmt.executeQuery( query );
			int rows=0, i=0;
				try {
					while (rs.next()) {	
						String text = rs.getString(i+1);
						table_ergebnis_items.setText(text);
						System.out.println(text);
						rows++;
					}
					System.out.println(rs.getString(1));
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}			
				System.out.println(rs.getString(1));
		}
		catch ( SQLException e ) { }
		finally {
			try {
					con.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
				
		display = new Display();
		shell = new Shell(display);
		shell.setText("Management Tool");
		shell.setSize(320,250);		
		shell.open();
		buildTable();
		build_text_interface();
		build_buttons();
		while (!shell.isDisposed()) {
		if (!display.readAndDispatch()) display.sleep();
		}
		display.dispose();
	}

}

Vielen Dank im Voraus!
 
T

tha_dude

Gast
Hi Forum,

bin hier noch nicht wirklich weiter gekommen.
Wäre nett, wenn mir hier jemand einen Hinweis geben könnte.
Vielleicht muss diese Anfrage auch in das SWT-Forum verschoben werden?!?
 

SamHotte

Top Contributor
Hab kein Oracle zur Hand, aber wie wäre es, wenn du bei der Exception, die du in Zeile 124 fängst, mal was ausgibst?
 
T

tha_dude

Gast
Hi,

danke für den Tipp.
Allerdings kann ich mit der Exception nicht wirklich was anfangen:

java.sql.SQLException: ORA-03115: Netzwerkdatentyp oder -funktion nicht unterstützt.
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:911)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1122)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:962)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1242)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1423)
..

Habe dazu bei google und metalink nur etwas zu einem Timestamp-Problem gefunden.
 

SamHotte

Top Contributor
Wäre interessant zu wissen, ob dir die Exception beim Connect oder beim Select geschmissen wird (Zeile 102 oder 108?).
 
T

tha_dude

Gast
Hi,

es scheint an dem prepared statement zu liegen.
Wenn ich ein "normales" statement abschicke, bekomme ich die Daten und kann diese auch in die Tabelle schieben.
Die Frage ist nur, ob ich das prepared statement falsch geschrieben habe, oder ob das über die jdbc-Treiber oder von der Oracle-DB nicht unterstützt wird.
Habe das ganze allerdings an mehreren unterschiedlich konfigurierten Datenbanken getestet. Daher wird es wohl eher der Treiber sein.
 

SamHotte

Top Contributor
Klingt dann eher nach 'nem falschen Datentyp - sind die Felder denn in der Datenbank auch Strings? Sonst musst du 'setInt', 'setDate' oder sowas verwenden.

Nicht jede Datenbank unterstützt alle Typen aus 'java.sql.Types' ...
 
T

tha_dude

Gast
Hi,

es sind alles Strings (varchar2), die abgefragt werden sollen.
 
G

gk_one

Gast
Ersetze mal in Zeile 108
rs = stmt.executeQuery( query );
durch
rs = stmt.executeQuery( );
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
L Anpassung der Spaltenbreite auch auf eine zweite Tabelle anwenden Java Basics - Anfänger-Themen 8
P Zweidimensionales Array als Tabelle mit befüllten Zahlen Java Basics - Anfänger-Themen 10
J Tabelle Sortieren Java Basics - Anfänger-Themen 48
Sonas814 ASCII-Tabelle Java Basics - Anfänger-Themen 2
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
J Autovervollständigung in einer Tabelle Java Basics - Anfänger-Themen 40
RudiRüssel maximale Anzahl von Schlüsseln in einer Hash Tabelle Java Basics - Anfänger-Themen 2
crrnogorka Letzte Zeile einer Tabelle "überschreibt" alle anderen Zeilen Java Basics - Anfänger-Themen 1
F Tabelle - Berechnung Rang Java Basics - Anfänger-Themen 2
N Tabelle schön in der Konsole ausgeben Java Basics - Anfänger-Themen 5
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
D Tabelle in der Konsole Java Basics - Anfänger-Themen 3
H Meine Tabelle befüllen in .fxml Java Basics - Anfänger-Themen 16
B Import Tabelle - Struktur durch User einstellbar Java Basics - Anfänger-Themen 4
O Max Gewinn einer Tabelle Java Basics - Anfänger-Themen 12
D Apache POI Tabelle wechseln Java Basics - Anfänger-Themen 2
B Kann man eine Tabelle in Eclipse erzeugen und damit arbeiten? Java Basics - Anfänger-Themen 8
S Ich verstehe die RegEx Tabelle von Javadoc nicht so ganz Java Basics - Anfänger-Themen 3
krgewb ASCII-Tabelle Java Basics - Anfänger-Themen 12
BlueFox Tabelle in der Konsole ausgeben - Probleme Java Basics - Anfänger-Themen 1
V Operatoren Was will mir die Tabelle in meinem Lehrbuch sagen? (logische Operatoren) Java Basics - Anfänger-Themen 4
J Werte aus einer Tabelle übernehmen Java Basics - Anfänger-Themen 2
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
W Befüllung einer Tabelle mit Checkbox, Trennung GUI und Model Java Basics - Anfänger-Themen 5
P ASCII-Tabelle Java Basics - Anfänger-Themen 5
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
A Hash Tabelle Element suchen Java Basics - Anfänger-Themen 1
B Vererbung In offener Hash Tabelle einfügen Java Basics - Anfänger-Themen 4
M 1x1 Tabelle Abstände korrigieren Java Basics - Anfänger-Themen 2
P Wert aus Tabelle erhalten Java Basics - Anfänger-Themen 1
U Tabelle ändern und die Inhalte speichern Java Basics - Anfänger-Themen 9
I HTML Tabelle nur so lange erzeugen bis Höhe erreicht Java Basics - Anfänger-Themen 9
N Erste Schritte MySQL Tabelle in JList darstellen Java Basics - Anfänger-Themen 1
S Klassen Objekt- Tabelle / Dynamisches 2Dimensionales Array für Objekte Java Basics - Anfänger-Themen 6
H "Tabelle" Java Basics - Anfänger-Themen 4
B Tabelle mit Fremdschlüssel versehen Java Basics - Anfänger-Themen 0
M Primefaces tabelle bearbeiten Java Basics - Anfänger-Themen 4
M Tabelle aktualisieren (mal wieder) Java Basics - Anfänger-Themen 10
M Erste Schritte Tabelle aktualisieren (mal wieder) Java Basics - Anfänger-Themen 7
G JTable: Werte in Tabelle direkt ansprechen Java Basics - Anfänger-Themen 3
P Excel-Tabelle erstellen Java Basics - Anfänger-Themen 4
I Daten aus Arraylists in eine Tabelle übertragen Java Basics - Anfänger-Themen 2
B daten speichern in einer tabelle Java Basics - Anfänger-Themen 5
J Zuweisung/Tabelle Java Basics - Anfänger-Themen 6
M Werte aus Tabelle elegant zuordnen? Java Basics - Anfänger-Themen 2
D String aus txt in label für Tabelle einfügen Java Basics - Anfänger-Themen 8
S Abfragen wenn das ende einer Tabelle erreicht ist Java Basics - Anfänger-Themen 8
M Tabelle aktualisiert sich erst nach mausklick Java Basics - Anfänger-Themen 4
J Tabelle aus Website einlesen [nicht im Quellcode] Java Basics - Anfänger-Themen 6
J Tabelle aktuallisieren Java Basics - Anfänger-Themen 22
A Im Telefonbuch eine Tabelle ergänzen Java Basics - Anfänger-Themen 6
N Ergebnisse dynamisch in Tabelle schreiben Java Basics - Anfänger-Themen 3
F Werte aus Tabelle vergleichen/rechnen Java Basics - Anfänger-Themen 5
J Punkte hinzufügen Tabelle Java Basics - Anfänger-Themen 5
C CSV-Tabelle Java Basics - Anfänger-Themen 21
M nur 1 wert in tabelle Java Basics - Anfänger-Themen 3
M Kreuztabellenabfrage an Tabelle anfügen Java Basics - Anfänger-Themen 3
M Wert aus Tabelle lesen Java Basics - Anfänger-Themen 4
M Überschrift wird nicht angezeigt Tabelle Java Basics - Anfänger-Themen 2
O Tabelle Formatieren mit system.out.format Java Basics - Anfänger-Themen 11
M Tabelle mit Buttons Java Basics - Anfänger-Themen 24
M JSON Datensätze aus Website in Tabelle Java Basics - Anfänger-Themen 17
U Drag&Drop von Tabelle in Textfeld Java Basics - Anfänger-Themen 3
D Auf Objekt in Tabelle zugreifen Java Basics - Anfänger-Themen 4
D Eclipse und Visual Editor - erzeugen einer Tabelle Java Basics - Anfänger-Themen 8
Binary.Coder JTable bzw. Tabelle in bestimmte Form überführen Java Basics - Anfänger-Themen 5
D Inhalt der Spalten einer Tabelle addieren Java Basics - Anfänger-Themen 4
H JTable Überschrift der Tabelle wird nicht angezeigt Java Basics - Anfänger-Themen 5
F Aus Tabelle auslesen Java Basics - Anfänger-Themen 10
B Tabelle, Größe der Komponenten Java Basics - Anfänger-Themen 2
H ButtonGroup in Tabelle Java Basics - Anfänger-Themen 2
X Zeile in Tabelle kopieren und in andere einfügen Java Basics - Anfänger-Themen 6
X Arraylist in Tabelle Java Basics - Anfänger-Themen 18
M Tabelle mit immer sortiertem Inhalt Java Basics - Anfänger-Themen 5
R ASCII-Tabelle Java Basics - Anfänger-Themen 6
F Tabelle in anderer Klasse füllen Java Basics - Anfänger-Themen 9
Beckenbauer OOP Durch Komma getrennte Einträge in einem String in ein Array oder eine Tabelle schreiben Java Basics - Anfänger-Themen 4
M 2D-Array als Tabelle ausgeben ? Java Basics - Anfänger-Themen 6
M Konsole: Tabelle Ausgeben Java Basics - Anfänger-Themen 5
M Sortierte Tabelle in Datei schreiben Java Basics - Anfänger-Themen 5
A Leere Fläche einer Tabelle umfärben Java Basics - Anfänger-Themen 3
J Tabelle in Fenster anzeigen Java Basics - Anfänger-Themen 12
Z Array mit daten einer datenbankbefüllen und dies an eine tabelle geben Java Basics - Anfänger-Themen 6
M Einfügen von Daten in eine Tabelle Java Basics - Anfänger-Themen 9
J Java Ein mal Eins Tabelle Java Basics - Anfänger-Themen 11
G POI: Zelle aus einer Tabelle kopieren und in einr anderen einfügen Java Basics - Anfänger-Themen 5
J Feld in Tabelle suchen Java Basics - Anfänger-Themen 8
babel Datenbank Daten direkt an die Tabelle übergeben ohne Arrays Java Basics - Anfänger-Themen 9
T Programm startet nicht wg. Tabelle? Java Basics - Anfänger-Themen 19
R Moechte Tabelle ausschreiben auf der Konsole Java Basics - Anfänger-Themen 2
S Daten aus Tabelle auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen und in Tabelle einfügen Java Basics - Anfänger-Themen 6
E Boolean wert innerhalb einer Tabelle ändern Java Basics - Anfänger-Themen 4
B zahlen verschieben tabelle Java Basics - Anfänger-Themen 2
P Zeilnumbruch vermeiden bei einer Tabelle *hilfe* Java Basics - Anfänger-Themen 11
M Daten in Tabelle setzen. Java Basics - Anfänger-Themen 6
C Tabelle sortieren (evtl. setComparator) Java Basics - Anfänger-Themen 2
T ASCII Tabelle darstellen Java Basics - Anfänger-Themen 7
G Tabelle änderungen Java Basics - Anfänger-Themen 48

Ähnliche Java Themen

Neue Themen


Oben