Hallo Männers,
ich habe da ein Problem, da werde ich nicht schlau draus, ich weiss nicht ob ich mir da selbst ein Fehler eingebaut habe oder da eine Regel nicht beachte.
Ich habe mal versucht mit Java eine Datenbank(Access) auszulesen, es ist für mich das erste mal, das ich mit Java eine DB bearbeite oder besser gesagt, was auslesen will.
Das hat auch soweit ganz gut geklappt, solange ich den Inhalt der DB mit "System.out.println()" ausgegeben habe.
Aber dann dachte ich mir, mach doch einfach ein Frame mit Textarea und lass die Ausgabe mit dem Befehl "Frame.textArea.append(DBinhalt)", da anzeigen.
Und ab da will er nicht mehr.
Fehlermeldung:
Exception in thread "main" java.lang.NullPointerException
at main.DBConnect.abfrage(DBConnect.java:29)
at main.Frame.main(Frame.java:32)
ich habe da ein Problem, da werde ich nicht schlau draus, ich weiss nicht ob ich mir da selbst ein Fehler eingebaut habe oder da eine Regel nicht beachte.
Ich habe mal versucht mit Java eine Datenbank(Access) auszulesen, es ist für mich das erste mal, das ich mit Java eine DB bearbeite oder besser gesagt, was auslesen will.
Das hat auch soweit ganz gut geklappt, solange ich den Inhalt der DB mit "System.out.println()" ausgegeben habe.
Aber dann dachte ich mir, mach doch einfach ein Frame mit Textarea und lass die Ausgabe mit dem Befehl "Frame.textArea.append(DBinhalt)", da anzeigen.
Und ab da will er nicht mehr.
Fehlermeldung:
Exception in thread "main" java.lang.NullPointerException
at main.DBConnect.abfrage(DBConnect.java:29)
at main.Frame.main(Frame.java:32)
Java:
package main;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnect {
private static Connection con;
public DBConnect() {
Statement s;
try {
connect("db.mdb", "", "");
s = con.createStatement();
ResultSet res= s.executeQuery("select * from Tabelle1");
String t;
while (res.next()) {
// hier entsteht der Fehler, wenn ich
"System.out.println(res.getString("Feld1"));"
// einsetze dann ist alles OK, wenn ich
"t=res.getString("Feld1"); Frame.textArea.append(t);"
//dann kommt ein fehler
}
res.close(); s.close(); con.close();
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public boolean connect(String filename, String user, String passwd)
throws SQLException, ClassNotFoundException {
String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:/"
+ filename + ";READONLY=false}";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url, user, passwd);
return true;
}
}
Java:
package main;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextArea;
public class Frame extends JFrame {
private JPanel contentPane;
public static JTextArea textArea;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Frame frame = new Frame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
DBConnect DBC = new DBConnect();
}
/**
* Create the frame.
*/
public Frame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
textArea = new JTextArea();
textArea.setBounds(5, 5, 424, 245);
contentPane.add(textArea);
}
}
Zuletzt bearbeitet: