Hallo,
die Arrays habe ich jetzt erst os richtig verstanden und es war keine Lösung, daher jetzt eine andere:
Daten aus einer Datenbank bei einem Host in eine lokale Datenbank schreiben.
Bisher funktioniert gut: Daten aus Datenbank vom Host holen und anzeigen.
Eröffne ich aber jetzt dazwischen die Verbindung zur lokalen Datenbank, um die Daten zu schreiben, kommt eine "NullException"
Der Code sieht so aus:
Fehlermeldung entsteht bei "Statement lc = connection.createStatement();" - wenn also eine neue Verbindung aufgebaut wird zur lokalen Datenbank:
die Arrays habe ich jetzt erst os richtig verstanden und es war keine Lösung, daher jetzt eine andere:
Daten aus einer Datenbank bei einem Host in eine lokale Datenbank schreiben.
Bisher funktioniert gut: Daten aus Datenbank vom Host holen und anzeigen.
Eröffne ich aber jetzt dazwischen die Verbindung zur lokalen Datenbank, um die Daten zu schreiben, kommt eine "NullException"
Der Code sieht so aus:
Java:
public void testconnectionDB(DefaultTableModel defaultTableModel)
{
getInstance().createDBConnection();
if(dbconnection==null)
{
System.out.println("Abfrage nicht möglich, Connection ist null");
System.out.println(dbconnection);
return;
}
try
{
// Code aus dem Buch MySQL CookBook Seite 439
int i = 1;
Statement s = dbconnection.createStatement();
s.executeQuery ("Show tables");
ResultSet resulttable = s.getResultSet ( );
while (resulttable.next())
{
System.out.println("Tabelle in Datenbank gefunden: " + resulttable.getString(1));
String tabelle= resulttable.getString(1);
System.out.println("Tabellenname zum Zweiten: " + tabelle);
ResultSetMetaData mdtable = resulttable.getMetaData ( );
// String tabellenname = resulttable.getString(1);
[COLOR="DarkRed"] /* HIER VERBINDUNG MIT LOKALER DATENBANK AUFNEHMEN UND IN TABELLE TABELLENINFOS den NAMEN DER TABELLE SCHREIBEN!!!!!!!! */
Statement lc = connection.createStatement();
ResultSet resultlokal= lc.getResultSet();
// lc.executeQuery("Insert into tabelleninfos (tabname) values (" + tabellenname + ")");[/COLOR]
// String tabellenname = mdtable.getColumnName(1);
// System.out.println(tabellenname);
Statement stat = dbconnection.createStatement();
stat.executeQuery("Select * from " + resulttable.getString(1));
ResultSet tabellenabfrage = stat.getResultSet();
ResultSetMetaData tabellemeta = tabellenabfrage.getMetaData ( );
int spaltenzahl = tabellemeta.getColumnCount();
System.out.println("Spaltenanzahl der Tabelle: " + spaltenzahl);
if (tabellenabfrage.next())
{
for (i = 1; i <= spaltenzahl; i++)
{
System.out.println("Type der Daten aus der Spalte " + tabellemeta.getColumnLabel(i) + ": " + tabellemeta.getColumnTypeName(i));
}
}
}
Fehlermeldung entsteht bei "Statement lc = connection.createStatement();" - wenn also eine neue Verbindung aufgebaut wird zur lokalen Datenbank:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ButtonDBTablezweite.testconnectionDB(ButtonDBTablezweite.java:213)
at ButtonDBTable.testDBActionPerformed(ButtonDBTable.java:563)
at ButtonDBTable.access$8(ButtonDBTable.java:559)
at ButtonDBTable$10.actionPerformed(ButtonDBTable.java:260)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Zuletzt bearbeitet: