Hallo,
so erstmal ein frohes neues Jahr ;-)!
Dann zu weniger erfreulichem: Schreibe Datensätze von einer Datenbank auf einem Server in eine lokale Datenbank. Funktioniert mittlerweile, doch möchte ich prüfen, ob der Datensatz schon vorhanden ist und nur wenn nicht, diesen Datensatz in die lokale Datenbank (bzw Tabelle) schreiben. Später würde das auch Datensätze betreffen, die nur verändert wurden (aber erstmal lass ich das weg).
Ich dachte mir, dass das Vergleichen anhand des PrimärKey der beste Weg ist. Daher habe ich folgendes gemacht:
Wobei der Teil mit "((Connection) servdbabfrage)" als Vorschlag für ein Problem von Eclipse her kam und ich das mal übernahm.
Es gibt daher keien Fehlermeldungen, aber es wirft eine Exception:
Beispiele von der Anwendung im Internet: How do I use DatabaseMetaData to get table column names? - Learn Java by Examples
Hier wird aber kein Statement verwendet, was bei mir als Fehler angezeigt wird, wenn ich die Klammern mit "Connect" weglasse und direkt das statement stehen habe.
Auch habe ich versucht, aus dem DatabaseMetaData ein ResultSet zu machen, aber getPrimaryKey() braucht wohl dieses....!
Weiß jemand dazu eine Lösung, damit ich den Primärschlüssel noch auslesen kann oder eine andere Lösung, wie ich die Datensätze miteinander vergleichen könnte?
Danke
so erstmal ein frohes neues Jahr ;-)!
Dann zu weniger erfreulichem: Schreibe Datensätze von einer Datenbank auf einem Server in eine lokale Datenbank. Funktioniert mittlerweile, doch möchte ich prüfen, ob der Datensatz schon vorhanden ist und nur wenn nicht, diesen Datensatz in die lokale Datenbank (bzw Tabelle) schreiben. Später würde das auch Datensätze betreffen, die nur verändert wurden (aber erstmal lass ich das weg).
Ich dachte mir, dass das Vergleichen anhand des PrimärKey der beste Weg ist. Daher habe ich folgendes gemacht:
Java:
DatabaseMetaData metadata = ((Connection) servdbabfrage).getMetaData();
ResultSet rsmeta = metadata.getPrimaryKeys(null, null, tabelle);
Es gibt daher keien Fehlermeldungen, aber es wirft eine Exception:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: com.mysql.jdbc.StatementImpl cannot be cast to java.sql.Connection
Beispiele von der Anwendung im Internet: How do I use DatabaseMetaData to get table column names? - Learn Java by Examples
Hier wird aber kein Statement verwendet, was bei mir als Fehler angezeigt wird, wenn ich die Klammern mit "Connect" weglasse und direkt das statement stehen habe.
Auch habe ich versucht, aus dem DatabaseMetaData ein ResultSet zu machen, aber getPrimaryKey() braucht wohl dieses....!
Weiß jemand dazu eine Lösung, damit ich den Primärschlüssel noch auslesen kann oder eine andere Lösung, wie ich die Datensätze miteinander vergleichen könnte?
Danke