Datenbankverbindung mit einem JTable

  • Themenstarter Themenstarter Marcel80
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

Marcel80

Gast
Hallo, ich hab folgendes Problem. Wie kann ich eine Verbindung meines JTabeles zu einer Datenbank aufbauen. Ich weiß leider nicht wo ich das einsetzen soll??? Die Verbindung müßte doch bei "String rowData[][] =" eingefügt werden, oder lieg ich da komplett falsch?

Vielleicht kann mir ja jemand weiterhelfen...


Code:
import javax.swing.*;
public class TestLabel
{
  public static void main( String args[] )
  {
    String rowData[][] = {
      { "Japan", "245", "ee" }, { "USA", "240", "eeee" }, { "Italien", "220", "eef" } //nur als Test

    };
    String  columnNames[] = {
      "Firmenname", "Firmenadresse", "Ansprechpartner"
    };
    JTable table = new JTable( rowData, columnNames );
    JFrame frame = new JFrame();
    frame.getContentPane().add( new JScrollPane(table) );
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    frame.pack();
    frame.setVisible( true );
  }
}
 
Erstmal danke für den Hinweis. Ich hab das mal versucht umzusetzen. Beim ausführen kommt dann die Meldung:
ClassTable.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
und ein leeres Table wird geöffnet... Keine Ahnung was das heißen soll???

Hab ich einen Fehler drin?

Code:
import java.awt.*;
 import java.io.*;
 import java.sql.*;
 import java.util.*;
 import javax.swing.*;
 import javax.swing.table.*;
 
  public class ClassTable extends JFrame
 {
     public String ClassTable()
     {
        String ausgabe = " ";
         Vector columnNames = new Vector();
         Vector data = new Vector();
 
         try
         {
 String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
 String url = "jdbc:odbc:Kunden_SS06";
             Class.forName( driver );
 Connection connection =
 connection = DriverManager.getConnection( url );
 
             String sql = "Select * FROM Kunden";
 Statement stmt = connection.createStatement();
             ResultSet rs = stmt.executeQuery( sql );
             ResultSetMetaData md = rs.getMetaData();
             int columns = md.getColumnCount();
             for (int i = 1; i <= columns; i++)
             {
 columnNames.addElement( md.getColumnName(i) );
             }
              while (rs.next())
             {
                 Vector row = new Vector(columns);
                  for (int i = 1; i <= columns; i++)
                 {
 row.addElement( rs.getObject(i) );
                 }
                  data.addElement( row );
             }
              rs.close();
             stmt.close();
         }
         catch(Exception e)
         {
             System.out.println( e );
         }
 
        
 {
 JTable table = new JTable(data, columnNames);
 
 JScrollPane scrollPane = new JScrollPane( table );
         getContentPane().add( scrollPane );
 
         JPanel buttonPanel = new JPanel();
 getContentPane().add( buttonPanel, BorderLayout.SOUTH );
    }
 return ausgabe;
 }
 
     public static void main(String[] args)
     {
 ClassTable frame = new ClassTable();
 frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
         frame.pack();
         frame.setVisible(true);
     }
 }
 
Marcel80 hat gesagt.:
Code:
...
  public class ClassTable extends JFrame
 {
     public String ClassTable()
     {
...
 return ausgabe;
 }
Ein Konstruktor hat keinen Rückgabewert: also "String" wegmachen und "return ausgabe;" wegmachen.

Um die Warnungsmeldungen wegzubekommen:
Code:
...
        Vector<String> columnNames = new Vector<String>();
        Vector<Vector> data = new Vector<Vector>();
...
                Vector<String> row = new Vector<String>(columns);
                for (int i = 1; i <= columns; i++) {
                    row.addElement( rs.getString(i) );
                }
...
 
Super vielen Dank für die Hilfe!!! Das Teil läuft endlich...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben