importierte Derby DB währen der Laufzeit einlesen

ToxicAvenger

Mitglied
Hallo zusammen,

momentan bin ich gerade dabei das exportieren und importieren meiner kompletten DerbyDB zu implementieren, sodass der Datenbank-Ordner and den gewählten Ort als Zip abgelegt wird, beim importieren wird die vorhandene Datenbank dann überschrieben.

Eigentlich funktioniert das auch schon soweit. Das Problem ist, dass ich das Programm erst neu starten muss damit die importierte Datenbank eingelesen wird. Während der Laufzeit bekomme ich einfach keine Verbindung zur importierten bzw. überschriebenen Datenbank hin. Das Programm scheint temporär mit der alten Datenbank weiter zu arbeiten.

Wenn ich die Connection dann mit connection.close() schliesse und wieder neu aufnehme mit

Connection = DriverManager.getConnection("jdbc:derby:example;create=true");

Bekomme ich die Fehlermeldung, dass aktuell keine Verbindung zur Datenbank bestehe, obwohl connection.isClosed(), false anzeigt.

Vielleicht liegt es ja nur daran, dass die Referenz nicht mehr stimmt, aber nach meiner Aufassung müsste das passen. Deshalb frage ich mal nach ob ich da beim Verbindung schließen und wieder verbinden etwas vergessen habe oder so?

MfG
 

mrBrown

Super-Moderator
Mitarbeiter
Ohne zu wissen, was du da machst, kann man da wenig sagen...

Wenn du eine Connection mit neuen Daten öffnest, sollten das auch eine gültige Connection zu der neuen Datenbank sein.
Verwendest du irgendwas statisches?
 

ToxicAvenger

Mitglied
Okey ich stelle mal den Code meiner Recovery-Klasse rein(vereinfacht um beim wesentlichen zu bleiben), ich hoffe das reicht zum Verständnis. Mittlerweile bekomme ich die Fehlermeldung, dass keine aktuelle Verbindung besteht nicht mehr...
...Aber beim Aufruf von table.update(), welche die Datenbank ausliest ist das ResultSet einfach leer, das heisst die GUI bekommt keine Daten.

Nein statisch ist nichts mehr, habe deinen Rat damals befolgt ;-)

Java:
import backupAndRecovery.model.RecoveryModel;
import connection.DBConnector;
import gui.Presentation;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileSystemView;

public class DBRecoveryController {

    private final Presentation presentation;
    private final ArrayList<TableModelInterface> tableModels;
    private final Connection con;
    private final String seperator = System.getProperty("file.separator");
    private final String folderPath = FileSystemView.getFileSystemView().getDefaultDirectory().getPath();
   
    public DBRecoveryController(Presentation presentation, ArrayList<TableModelInterface> tableModels, Connection con) {
        //die GUI Klasse
        this.presentation = presentation;
        //Sammlung aller Tabellen-Models die jeweils auf die Datenbank zugreifen
        this.tableModels = tableModels;
        //Connection welche momentan von allen TableModels verwendet wird
        this.con = con;
        //dem MenuItem den ActionListener übergeben
        presentation.addMenuItemListener(new MenuItemActionListener(), "recovery");     
    }

    class MenuItemActionListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {

            JFileChooser chooser = new JFileChooser();
            chooser.setDialogType(JFileChooser.OPEN_DIALOG);
            int flag = chooser.showDialog(null, "wiederherstellen");
            if (flag == JFileChooser.APPROVE_OPTION) {

                try {
                    //schliesst die aktuelle Datenbankverbindung
                    con.close();
                    File file = chooser.getSelectedFile();
                   
                    //BackUp-Zip der Datenbank wird importiert und die momentan bestehende
                    //Datenbank-Ordner damit übeschrieben
                    new RecoveryModel(file, new File(folderPath + seperator + "myDB"));
                   
                    //Verbindung zur importierten Datenbank wieder aufnehmen
                    DBConnector connector = new DBConnector();
                    Connection newCon = connector.getConnection();
                   
                    //neue Connection an alle TableModels übergeben
                    for (TableModelInterface table : tableModels) {
                        //ruft this.statement = newCon.createStatement() auf;
                        table.setConnection(newCon);
                        //Datenbank-Daten werden ausgelesen und die GUI upgedatet;
                        table.update();
                    }
                } catch (SQLException ex) {
                    Logger.getLogger(DBRecoveryController.class.getName()).log(Level.SEVERE, null, ex);
                } catch (Exception ex) {
                    Logger.getLogger(DBRecoveryController.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
thor_norsk Datenbank: Apache Derby Datenbankprogrammierung 6
O apache derby in eclipse für Datenbanken einbauen Datenbankprogrammierung 3
F Derby Datenbankprogrammierung 5
L Derby/JavaFX Fehlermeldung Datenbankprogrammierung 3
R findet Derby.DB nicht !? Datenbankprogrammierung 5
K Eclipse Apache Derby Treiber Problem Datenbankprogrammierung 4
J Derby/JavaDB Datenbankanbindung Eclipse und Derby Datenbankprogrammierung 7
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
T Datenbankfeld in Derby 255 Zeichen Datenbankprogrammierung 3
M Derby/JavaDB Derby SQL Insert mit AUTO_INCREMENT, welche ID wurde vergeben? Datenbankprogrammierung 6
C Derby auf Server Datenbankprogrammierung 6
R derby : in squirrel url zu db von tomcat Datenbankprogrammierung 4
H Derby: SYSCS_UTIL.SYSCS_EXPORT_QUERY mit String Abfrage in wehre-Klausel nicht möglich Datenbankprogrammierung 3
H Probleme mit Unicodedarstellung in Derby DB Datenbankprogrammierung 1
S Dringend Netbeans Derby DB random() function Datenbankprogrammierung 6
M HSQLDB oder DERBY - warum SCRIPT Datei? Datenbankprogrammierung 0
B Derby/JavaDB Einrichten der Derby DB / JAVA DB Datenbankprogrammierung 2
A Eclipse + Derby + Delete Row Datenbankprogrammierung 3
D Derby Datenbank bei Export zu JAR-Datei nicht möglich Datenbankprogrammierung 8
D Embedded Derby Datenbank Datenbankprogrammierung 4
reibi Derby/JavaDB Derby DB löschen Datenbankprogrammierung 5
L Derby Datenbank speichert nicht Datenbankprogrammierung 9
N Query für Derby DB mit Enterbrise Bean Datenbankprogrammierung 4
S Derby/JavaDB Derby zu MySQL Datenbankprogrammierung 6
H Derby/JavaDB Eine verschlüsselte Derby-Datenbank wieder entschlüsseln Datenbankprogrammierung 4
G Derby/H2 Welches u. Wie installieren/verwenden? Datenbankprogrammierung 10
L Derby/JavaDB Derby macht Probleme Datenbankprogrammierung 4
zilti Derby/JavaDB EclipseLink und Derby: "Abschneidefehler" bei @Lob Datenbankprogrammierung 2
B Derby Databankabfrage liefert Ergebnisse nicht korrekt Datenbankprogrammierung 2
H Derby SQL-Abfragen in Datei abspeichern Datenbankprogrammierung 2
H Flat Files in Derby importieren Datenbankprogrammierung 3
reibi Derby/JavaDB Derby russty manager deaktivieren Datenbankprogrammierung 3
L Derby Dezimal-Spalte die Größe ändern Datenbankprogrammierung 2
D PostgreSQL vs Firebird vs Derby Datenbankprogrammierung 12
P Zugreifen auf Derby Datenbank mit java (ÜBERARBEITET) Datenbankprogrammierung 2
R Lokale Derby in einer JPA-Anwendung Datenbankprogrammierung 3
S Derby ein zweites mal als Read-only öffnen Datenbankprogrammierung 9
M Derby insert, ID auslesen Datenbankprogrammierung 3
J Derby Datenbankprogrammierung 7
S Derby Datenbank "offline" und "online" Datenbankprogrammierung 5
L Apache Derby Management-Tool Datenbankprogrammierung 3
A JavaDB(Derby) als ODBC-Datenquelle eintragen Datenbankprogrammierung 4
T Derby und Foreign Keys Datenbankprogrammierung 4
I JAVADB (Derby) OneToMany Datenbankprogrammierung 2
T Zugriff auf Derby-Datenbank will einfach nicht klappen Datenbankprogrammierung 22
M Gelöst: JavaDB - Derby Inhalt in Jar Datei speichern Datenbankprogrammierung 5
O Derby/JavaDB anwenden von Regular Expressions Datenbankprogrammierung 2
O Derby Performance Probleme? Datenbankprogrammierung 4
H Derby in Java 6 direkt integriert? Wie nutzt man das? Datenbankprogrammierung 3
Z derby abfrage von einem Timestamp Datenbankprogrammierung 2
GilbertGrape Allgemeines zu Derby Datenbankprogrammierung 7
M JavaDB/Derby: Tabellen erstellen Datenbankprogrammierung 8
G Derby Anleitung? Datenbankprogrammierung 1
H Migration von MySQL auf Derby Datenbankprogrammierung 2
B Java Derby Datenbank mit CLOB & BLOB Datenbankprogrammierung 5
vogella Java DB (Derby) Size Datenbankprogrammierung 12
J Derby Cursor Problem Datenbankprogrammierung 2
R Wie stabil ist Derby? Datenbankprogrammierung 2
P derby datenbank Datenbankprogrammierung 2
D Installation von Apache Derby in Eclipse Datenbankprogrammierung 1
P DERBY vs HSQLDB (Vor- Nachteile) Datenbankprogrammierung 3
B Cloudscape/Derby NetworkServer als JDBCRealm Datenbank Datenbankprogrammierung 2
P Apache DERBY - Datanbank erstellen Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben