Hallo zusammen,
habe folgendes Problem:
Ich will eine Datenbankanbindung machen und eine Abfrage starten.
mein Java Programm besteht aus 4 Klassen:
die Klassen funktionieren getrennt sehr gut
nun will ich das Abfrage-Ergebnis in eine GUI schreiben
leider kommt folgende Meldung:
Exception in thread "main" java.lang.NullPointerException
kann mir jemand sagen was ich falsch mache?
Gui
initialisieren der datenbank
Verbindung zu der Access Datenbank
Klasse die eine Abfrage macht
habe folgendes Problem:
Ich will eine Datenbankanbindung machen und eine Abfrage starten.
mein Java Programm besteht aus 4 Klassen:
- der Gui
- eine Klasse zum initialisieren der datenbank
- eine Klasse die die Verbindung zu der Access Datenbank aufnimmt
- und eine Klasse die eine Abfrage macht
die Klassen funktionieren getrennt sehr gut
nun will ich das Abfrage-Ergebnis in eine GUI schreiben
leider kommt folgende Meldung:
Exception in thread "main" java.lang.NullPointerException
kann mir jemand sagen was ich falsch mache?
Gui
Java:
// Tabelle anlegen
Table modell = new Table();
table = new JTable(modell);
table.getTableHeader().setBackground(Color.YELLOW);
JScrollPane pane = new JScrollPane(table);
pane.setBounds(10, 80, 950, 220);
Panel1.add(pane);
// befüllen
fuelleTabelle(tq.gibMirDaten());
initialisieren der datenbank
Java:
import javax.swing.table.AbstractTableModel;
public class Table extends AbstractTableModel
{
String[] spaltenNamen = {"Name.", "Vorname", "Geburtsdatum", "Email", "Mobiltelefon", "Telefon", "Fax"};
Object[][] daten = new Object [30][7];
public int getRowCount()
{
return daten.length;
}
public int getColumnCount()
{
return spaltenNamen.length;
}
public String getColumnName(int num)
{
return spaltenNamen[num];
}
public boolean isCellEditable(int x, int y)
{
return false;
}
public Object getValueAt(int x, int y)
{
return daten [x][y];
}
public void setValueAt(Object obj, int x, int y)
{
daten[x][y] = obj;
fireTableDataChanged();
}
}
Verbindung zu der Access Datenbank
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class TableConnection
{
Connection con;
Statement stmt;
ArrayList<String> ergebnis = new ArrayList<String>();
public TableConnection()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException e)
{
System.out.println("Fehler bei JDBC-ODBC-Brücke");
}
try
{
// mit temporären ODBC-Treiber
String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};"+ "DBQ=Datenbank/kontakte.mdb";
con = DriverManager.getConnection(url);
}
catch (SQLException s)
{
System.out.println("DB-Verbindungsfehler: " + s);
}
}
}
Klasse die eine Abfrage macht
Java:
public class TableQuery
{
Connection con;
Statement stmt;
ArrayList<String> ergebnis = new ArrayList<String>();
public ArrayList<String> gibMirDaten()
{
String query = "SELECT * FROM buechertabelle;";
try
{
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next())
{
for (int i = 1; i <= 7; i++)
{
ergebnis.add(rs.getString(i));
}
}
}
catch (SQLException e)
{
System.out.println(e);
}
return ergebnis;
}
}
Zuletzt bearbeitet: