Erstellen von JTables mit Daten aus SQL-Datenbank!

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Erstellen von JTables mit Daten aus SQL-Datenbank!

    Java und SQL anbindung.
    Ich möchte eine Art Verwaltungsprogamm zu schreiben, hierfür muss ich eine Tabelle aus einer SQL Datenbank (Firebird) in Java, mittels eines JTabels dastellen.

    Ich habe ein Quellcode geschrieben, bei dem mir eclipse auch keine Fehlermeldung gibt, jedoch öffnet sich beim ausführen der Class mit dem JTable keine Tabelle.

    Wisst ihr vielleicht mehr

    Ich habe hier mal den Quellcode der Class in der das JTable ausgeführt werden soll:

    Quellcode

    1. package Layoutstudenten;
    2. import java.awt.BorderLayout;
    3. import java.awt.Dimension;
    4. import java.awt.event.WindowAdapter;
    5. import java.awt.event.WindowEvent;
    6. import java.sql.Connection;
    7. import java.sql.DriverManager;
    8. import java.sql.ResultSet;
    9. import java.sql.Statement;
    10. import javax.swing.JFrame;
    11. import javax.swing.JTable;
    12. public class TB2 extends JFrame {
    13. //Quelle:[url='http://www.easy-coding.de/jtable-mit-daten-aus-der-datenbank-neu-zeichnen-t5280.html']http://www.easy-coding.de/jtable-mit...nen-t5280.html[/url]
    14. JTable tab;
    15. Statement stmt = null;
    16. Connection con=null;
    17. ResultSet rs =null;
    18. private String user;
    19. private String pw;
    20. private String ur;
    21. private String dataname;
    22. private String prt;
    23. public TB2(String benutzer, String passwort, String url, String dbName, String port){ //Konstruktor zum Erzeugen einer DB-Tabelleund Darstellen
    24. String user=benutzer;
    25. String pw=passwort;
    26. String ur=url;
    27. String dataname=dbName;
    28. String prt=port;
    29. Object[][] daten= new Object[4][3]; // 2-dim. Feld für Tabellendaten
    30. String[] spalten={"Projektname","Kunde","Budget"}; // Überschriften der Spalten
    31. tab=new JTable(daten,spalten); // eine JTable konstruieren
    32. tab.setPreferredScrollableViewportSize(new Dimension(300,150)); // Größe
    33. add(tab,BorderLayout.CENTER); // im Fensterzentrum einfügen
    34. add(tab.getTableHeader(),BorderLayout.NORTH); // Spaltenüberschriften oben
    35. addWindowListener( //Methode zum Reagieren auf Fensterereignisse hinzufügen
    36. new WindowAdapter(){ //Instanz der Klasse WindowAdapter (mit leerem Interface WindowListener)
    37. public void windowClosing(WindowEvent e) //überschreibt Reaktion auf Fensterschließen
    38. {System.exit(0);} //mit Beenden des Programms
    39. }
    40. );
    41. }
    42. public void öffneDB()
    43. {
    44. try {
    45. Class.forName("org.firebirdsql.jdbc.FBDriver"); // Treiber laden
    46. } catch (Exception e) {
    47. System.out.println("Fehler beim Laden des JdbcOdbc Treibers");
    48. return;
    49. }
    50. try {
    51. con = DriverManager.getConnection(ur,user,pw); // Verbindung zu Datenbank herstellen
    52. stmt = con.createStatement();
    53. } catch (Exception e) {
    54. System.err.println("keine Verbindung zu "+ur);
    55. return;
    56. }
    57. }
    58. public void frageProjekt()
    59. {
    60. try {
    61. rs = stmt.executeQuery("select * from Personen;"); // Datenbankabfrage
    62. int zeile=0;
    63. while (rs.next()){ //ResultSet abarbeiten: jeweils eine Zeile
    64. tab.setValueAt(rs.getString(1),zeile,0); //1. Attribut: String mit Projektname
    65. tab.setValueAt(rs.getString(2),zeile,1); //2. Attribut: String mit Kunde
    66. tab.setValueAt(new Integer(rs.getInt(3)),zeile,2); //3. Attribut: Int mit Budget als Objekt
    67. zeile++;
    68. }
    69. }catch (Exception e) {
    70. System.err.println("Fehler beim Bearbeiten der SQL-Anweisung"+
    71. ": "+e.getMessage());
    72. }
    73. try{
    74. con.close();
    75. } catch (Exception e) {
    76. System.out.println("Fehler beim Schließen der DB");
    77. }
    78. }
    79. }
    Alles anzeigen



    Ich weiß nicht wo mein Fehler ist, vielleicht könnt ihr mir helfen
    Schonmal vielen Dank im Vorraus!
  • Ich habe deinen Quelltext mal überflogen. Ich denke du suchst an der falschen Stelle. Deine Methoden sind eh alle public. Das heißt, dass du sie von außerhalb aufrufst. Zumindest solltest du das, denn ansonsten würde das JFrame mit allem Drum und Darn nicht angezeigt.
    Die Methode setVisible(true); des JFrames solltest du auf jeden Fall irgendwo aufrufen. Leider hast du diesen Teil des Codes nicht gepostet.