Zwischen Datenbanken wechseln

Einklang.

Bekanntes Mitglied
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:

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:

Einklang.

Bekanntes Mitglied
Naja die Fehlermeldung kommt erst wenn ich die Verbindung zur lokalen Datenbank aufbaue...... eine Verbindung zur gleichen Datenbank mit neuem SQL Befehle macht ja nichts aus.... daher liegt das Problem eben an dem Aufbau einer Verbindung zur lokalen Datenbank....!

Und jetzt gesehen: es ist Zeile 213! ;-)
 
S

SlaterB

Gast
"Statement lc = connection.createStatement();"
wie du selber sagst,
und connection kann doch null sein, dazu sagst du nix im letzten Posting,
niemand anders kann dazu etwas sagen
 

Einklang.

Bekanntes Mitglied
Jup genau und die Frage ist warum - weiter unten von der VErbindung lc ist eine Verbindung zu der Datenbank beim Host, zu der obe nschon verbunden wurde.

Im Grund möchte ich ja die Daten abholen vom Host, dann in eine lokale Datenbank schreiben und wieder Daten vom Host abholen und in die lokale Datenbank schreiben....!
(evtl. ist dieser Lösungsansatz ja auch nicht sehr vorteilhaft durch die unterschiedlichen und häufigen Verbindungsaufbau zu verschiedenen Datenbanken?)
 
M

Marcinek

Gast
Den Sinn, warum man das so macht, habe ich nicht erschlossen.

Deine Verbindung ist null, weil diese Variable vorher keinen Wert zugewiesen bekommt.

Zeige mir die Zeile (+- 10) in der du hier einen Wert zuweist.
 
S

SlaterB

Gast
connection ist einfach nur null,
von Host usw. kann keine Rede sein solange mit keiner Zeile zu sehen ist, was connection ist
 

Einklang.

Bekanntes Mitglied
Ach genau jetzt geht es schonmal - die Methode nicht instanziiert...!


Jetzt ist noch folgende Fehlermeldung vorhanden: "SQL-Exception bei der Abfrage: Can not issue data manipulation statements with executeQuery()." - das betrifft diese Zeile:
Java:
lc.executeQuery("Insert into tabelleninfos (tabname) values (" + tabelle + ")");

Ich weiß jetzt nicht was mit "data manipulation" gemeint ist...!??


Danke
 
S

SlaterB

Gast
"data manipulation" ist z.B. ein Insert,
executeQuery() ist nur für SELECT da, gibt aber noch mehr Methoden die mit execute anfangen
 

Einklang.

Bekanntes Mitglied
Wie würdet ihr das machen um Daten aus einer SQL Datenbank auf einem Server in eine lokale SQL-Datenbank zu bekommen?

Ich habe jetzt nämlich das Problem, in einer Schleife, bei der die verschiedenen Spalten einer Tabelle durchgegangen werden, Informationen in eine andere Tabelle zu schreiben....!

Java:
 if (tabellenabfrage.next())
        	 {
        		 
        		 for (i = 1; i <= spaltenzahl; i++)
        		 {
        			 System.out.println("Type der Daten aus der Spalte " + tabellemeta.getColumnLabel(i) + ": " + tabellemeta.getColumnTypeName(i));
        			 Statement loc = connection.createStatement();
        	        	ResultSet resultlok= lc.getResultSet();
        	        	lc.executeUpdate("Insert into tabelleninfos (tabname, spaltname, spalttype) values ('" + tabelle + ", " + tabellemeta.getColumnLabel(i) + " + tabellemeta.getColumnTypeName(i) ')");
        		 }
        	 }
        	 
         }


Kann das so überhaupt funktionieren oder muss ich doch eine andere Lösung suchen, evtl was mit einbauen (einreihiges array als Zwischenspeicher) usw usf??

Danke
 
Zuletzt bearbeitet:

Fab1

Top Contributor
Es besteht ja sicherlich die Möglichkeit die Datenbank vom Server zu exportieren, dann musst du diese bei dir nur wieder importieren ;)
 

Einklang.

Bekanntes Mitglied
Ja diese Lösung wäre mir aber lieber, weil ich später auch noch die Daten aus der Datenbank holen will mit täglicher Aktualisierung bzw überhaupt Aktualisierung der lokalen Datenbank.

Sonst müsste ich jetzt auch damit anfangen wie man Dateien ausliest und bearbeitet.... jede Menge was schiefgehen kann und hier sieht es so aus als obs schon fast klappt! ;-)

Danke
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Zwischen Datenbanken wählen auf SQL-Server Datenbankprogrammierung 4
melaniemueller Blättern zwischen Datenbanksätzen Datenbankprogrammierung 3
D umschalten zwischen verschiedene Tabellen Datenbankprogrammierung 1
C Entities zwischen zwei PersistenceUnits tauschen Datenbankprogrammierung 5
alex_fairytail MySQL SQL Statement Delete zwischen Datum1 und Datum2 Datenbankprogrammierung 5
M restdauer erfassen zwischen 2 terminen Datenbankprogrammierung 7
G Unterschied zwischen JPA und Hibernate? Datenbankprogrammierung 1
Y Hibernate - Mapping der Beziehung zwischen 2 Tabellen Datenbankprogrammierung 2
M Passwortvergabe bei Verbindung zwischen jdbc und mysqlServer Datenbankprogrammierung 2
O apache derby in eclipse für Datenbanken einbauen Datenbankprogrammierung 3
R Datenbanken erstellen Datenbankprogrammierung 3
I Hilfe zu Multidimensionalen Datenbanken Datenbankprogrammierung 1
D Java Datenbanken Datenbankprogrammierung 1
T Lagerprogramm mit Datenbanken Datenbankprogrammierung 21
K Verschiedene Datenbanken - Was sollte ich lernen? Datenbankprogrammierung 11
M SQLite Zwei Datenbanken synchronisieren Datenbankprogrammierung 8
M Feedback für neues Buch über "Java und Datenbanken" erwünscht Datenbankprogrammierung 8
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
M Hash in Bezug auf Datenbanken unklar Datenbankprogrammierung 3
M Datenbankschema in relationalen Datenbanken Datenbankprogrammierung 3
Ananaskirsche Verschlüsselung von Datenbanken Datenbankprogrammierung 1
T Datenbanken-PDF Datenbankprogrammierung 15
Y Derby/JavaDB Benutzung von eingebetteten Datenbanken Datenbankprogrammierung 4
G Datenbanken in Java Datenbankprogrammierung 9
K Zwei Datenbanken miteinander auf Unterschiede vergleichen Datenbankprogrammierung 2
T 2 Tabellen aus 2 Datenbanken miteinander vergleichen Datenbankprogrammierung 6
B Datenbanken schützen vor Zugriff Datenbankprogrammierung 3
M Beziehungsfrage Datenbanken Datenbankprogrammierung 5
L Große Datenbanken - Designproblem Datenbankprogrammierung 3
L Synchronisieren von 2 Datenbanken Datenbankprogrammierung 2
T a x b x c x....n Matrizen in Datenbanken Datenbankprogrammierung 5
P DatenBanken mit Netbeans erstellen Datenbankprogrammierung 17
K Grundfragen zu Datenbanken Datenbankprogrammierung 28
H Rechnen in Datenbanken - JDBC Mittel der Wahl? Datenbankprogrammierung 32
J Unterstützung für verschiedene Datenbanken Datenbankprogrammierung 2
T MySQL Auflistung aller Datenbanken??? Datenbankprogrammierung 9
J In viele verschiedene Datenbanken einfügen Datenbankprogrammierung 3
C MySQL Hibernate mit 2 Datenbanken Datenbankprogrammierung 12
V Hibernate mit 2 Datenbanken Datenbankprogrammierung 3
W MySQL Datenbanken auslesen Datenbankprogrammierung 3
M prinzipielle Frage zu Datenbanken und jars ... Datenbankprogrammierung 2
R PreparedStatement mit verschiedenen Datenbanken Datenbankprogrammierung 2
brainray Bei MySQL alle Datenbanken eines Servers abfragen Datenbankprogrammierung 3
R 1 Programm, 2 Datenbanken Datenbankprogrammierung 15
S Standard für Datenbanken Datenbankprogrammierung 3
R Datenbanken, Tabellen normalisieren. Datenbankprogrammierung 1
G Datenbanken abgleichen Datenbankprogrammierung 4
P Insert into mit zwei Datenbanken Datenbankprogrammierung 3
G Effektive Methode zum durchsuchen von SQL-Datenbanken Datenbankprogrammierung 7
M Datenbanken synchronisieren Datenbankprogrammierung 2
P Datenbanken auswahl, anforderungen Datenbankprogrammierung 29
K Daten in Datenbanken einfügen Datenbankprogrammierung 6
G H2: Erstellen von Datenbanken verhindern Datenbankprogrammierung 2
Y Datenbanken Datenbankprogrammierung 6
M Maximale Kapazität von Datenbanken Datenbankprogrammierung 2
S Objektorientierte Datenbanken Datenbankprogrammierung 4
G Umlaut-Problem mit Firebird Datenbanken Datenbankprogrammierung 8
I Datenbanken mit MySQL einrichten Datenbankprogrammierung 11
G Step-by-Step Anleitung für Datenbanken Datenbankprogrammierung 3
N Abfrage über zwei Datenbanken Datenbankprogrammierung 9
M Treiber für mysql Datenbanken Datenbankprogrammierung 2
C Hybernate DB zur Laufzeit wechseln Datenbankprogrammierung 4
G JDBC-Verbindung: User wechseln Datenbankprogrammierung 2
Gossi Datenbank zur laufzeit wechseln... Datenbankprogrammierung 2
J wechseln der datenbank Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben