1 Programm, 2 Datenbanken

Status
Nicht offen für weitere Antworten.

Reggie

Aktives Mitglied
Moin Zusammen,

Ich bin relativ neu in der Java Programmierung und wollte nun fragen wie ich es am besten bewerkstellige das ich in einem Programm 2 JDBC Treiber verwenden kann. Also das ich irgendwo festlege welche ich benutzen will und dann die entsprechenden Treiber gewählt werden. Am besten zur Laufzeit.

Wäre dankbar für eine Hilfestellung.
 

DerEisteeTrinker

Bekanntes Mitglied
ich würde mir eine klasse bauen, der ich übergebe, welcher Treiber verwendet werden soll und welche parameter der JDBC-String hat. die kannst du ja dann mehrfach instanzieren mit unterschiedlichen angaben.
 
G

Gelöschtes Mitglied 5909

Gast
Java:
        Connection oracleConnection = DriverManager.getConnection("oracle...");
        Connection mySQLConnection = DriverManager.getConnection("mySQL...");
        
        PreparedStatement oracle = oracleConnection.prepareStatement("SELECT * FROM FOO");
        PreparedStatement mySQL = mySQLConnection.prepareStatement("SELECT * FROM FOO");

comprende?
 

DerEisteeTrinker

Bekanntes Mitglied
@raiL: mach mal ganz ruhig. sind nicht alles gleich experten.

Nein die Klasse organisiert dir nur die Verbindung. Durch das JDBC ist es JAVA völlig egal, was für eine Datenbank dahinter steht. Du kannst die Statements und alles von der Connection bekommen. So wie raiL das schon verdeutlicht hat
 

Reggie

Aktives Mitglied
das heisst ich könnte mir ne klasse basteln die so in der art
Java:
public Connection getconnection(String DBType){
Connection conn = null;

if(DBType == MySql){
Connection mySQLConnection = DriverManager.getConnection("mySQL...");
}else if(DBType == Oracle){
Connection oracleConnection = DriverManager.getConnection("oracle...");

}
return conn;
}

und das übrige wie gewohnt abhandeln?

Und noch eine Zwischenfrage... Wozu ist das Class.ForName("com.mysql.JDBC") odeer so ähnlich gut?

Und noch was... könnt ich dann die verbindung auch offen halten und Sie immer wieder mit getconnection holen?

Greets Reggie
 
Zuletzt bearbeitet:

DerEisteeTrinker

Bekanntes Mitglied
Also ich würde eine Enumeration verwenden, wenn du die richtige Version nimmst. Dann kannst du sicher sein, dass man nur aus den angegeben Verbindungen wählen kann. Ansonsten kannst du ab da wie gehabt arbeiten.

das Class.forName läd den richtigen Treiber in die JDBC, weil sonst weiß das System ja nicht, worum es geht
 

Reggie

Aktives Mitglied
Das mit der Enumeration hab ich noch nicht ganz verstanden... also anstatt String einem Int machen oder wie ist das gemeint mit nur aus den vorhandenen auswählen können?

Und ist es völlig egal ob ich nun die Statements aus Java importiere oder die mitgelieferten aus dem MySql JDBC?
 
Zuletzt bearbeitet:

DerEisteeTrinker

Bekanntes Mitglied
Java:
public enum DataBaseEnum {
	MySQL, ORACLE;
}

Java:
public class DBConnection {
	
	public DBConnection(DataBaseEnum database) {
		
		switch (database) {
		case MySQL:
			
			break;

		case ORACLE:
			
			break;
			
		default:
			break;
		}
		
	}
	
}

so ungefähr sieht es dann aus. dann kann ein programmierer nur aus den Elementen der Enum auswählen und kommt auf keine falschen gedanken
 

Reggie

Aktives Mitglied
Ah so :)

Ich danke dir vielmals das hilft mir schonma sehr weiter

Ich habe noch 2 abschliessende fragen:

Kann ich so eine Connection während der gesamten Runtime ausrechterhalten und überall wo ich Daten vom SQL brauche mit getConnection holen?
Im moment mache ich für jeden Prozess eine Connection auf und schliesse Sie dann wieder.

Und kann ich für alles die Resultset und statement Klassen benutzen die von Java mitgeliefert werden? oder muss ich die des JDBC Treibers importieren?
 

DerEisteeTrinker

Bekanntes Mitglied
wann du die Connection holst, hängt davon ab wann du sie brauchst. wenn dein Programm oft die Datenbank brauch, dann halte die Verbindung offen, aber in der Regel ist es besser, wenn du die Verbindung gleich wieder schließt, wenn sie nicht mehr direkt gebraucht wird. weil manche DBs ein Problem damit haben, wenn die Verbindung aus iwelchen Gründen abreißt.

die Klassen von Java sollten für die JDBC-Arbeit reichen. Nur wenn du merkst, dass die Klassen nicht das machen, was du brauchst, dann importiere andere
 

Reggie

Aktives Mitglied
angenommen sie tun nicht das was ich will... dann kann ich ja kaum 2 oder 3 arten von Statements importieren oder? oder müsst ich sie dann immer voll referenzieren? also anstatt
Java:
Statement st = Mysqlconnection.getstatement();
müsst ich dann
Java:
com.MySQL.JDBC.Statement st = Mysqlconnection.getstatement();
Schreiben?
 

DerEisteeTrinker

Bekanntes Mitglied
wenn du die standard Statements in der Klasse nicht benutzt, kannst du auch oben nur die spezifischen Statements importieren und musst nicht jedes mal den langen paketpfad angeben. es kommt halt drauf an, was du oben importierst
 
M

maki

Gast
Wie DerEisteeTrinker schon sagte, einfach nur die JDBC API nutzen. d.h. die Interfaces, nciht die konkreten Klassen.
Ansonsten sind Connection Pools nicht verkehrt, wie immer eigentlich.

Am besten zur Laufzeit.
Wozu braucht man so etwas eigentlich?
;)

Sobald du nicht mehr nur das SQL verwendest das von beiden gleichzeitig verwendest, ist dein Code nicht mehr Portabel. Da Oracle im Gegensatz zu MySQL Sequenzes verwendest, ist das hier der Fall.

Nachtrag: Der letzte Satz ist offenbar nicht zutreffend..
 
Zuletzt bearbeitet von einem Moderator:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Programm auf dem PC bringen Datenbankprogrammierung 5
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
P USER Management in SQL übergreifend auf JAVA Programm Datenbankprogrammierung 1
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J Brauche Hilfe bei meinem Programm ! Datenbankprogrammierung 12
W Wie liest dieses Java-Programm der Compiler? Datenbankprogrammierung 3
B Java Programm und Dantebank umlagern Datenbankprogrammierung 25
X SQLite SQLite Programm beendet/führt nicht weiter aus Datenbankprogrammierung 12
G Über Internet Datenbank mit Programm abrufen Datenbankprogrammierung 17
M Verbindung von Java Programm zur Acccess Datenbank (mdb-Datei) Datenbankprogrammierung 0
D Daten von einem Server in eigenem Java-Programm benutzen Datenbankprogrammierung 6
P MySQL Java Programm als Dienst MySQL Dump zurück spielen Datenbankprogrammierung 4
T Derby/JavaDB Zugriff auf DB mit exportiertem Programm Datenbankprogrammierung 12
P MySQL Datenbank aus Programm heraus starten Datenbankprogrammierung 3
S MySQL Einfügen in Tabelle nur von Programm zulassen Datenbankprogrammierung 7
C Programm wird nach DB-Eintrag nicht weitergeführt Datenbankprogrammierung 5
M Ein mit Netbeans entwickeltes Programm dokumentieren Datenbankprogrammierung 5
W SELECT oder Programm-Logik Datenbankprogrammierung 10
J Programm <> Datenbank wie effizient nutzen? Datenbankprogrammierung 3
H MySQL Programm mit Datenbank anbindung Datenbankprogrammierung 26
W Interaktion Java-Programm <-> Datenbank Datenbankprogrammierung 14
C H2 Datenbank mit Programm starten Datenbankprogrammierung 2
E MySQL Daten in die Datenbank eingeben via Java Programm Datenbankprogrammierung 3
O MySQL sql Datei einzelner Tabellen erzeugen (über Java Programm) Datenbankprogrammierung 6
J Mit Java Programm - PostgreSQL backup und restore Datenbankprogrammierung 5
D Werte mit java programm in eine Datenbank einlesen Datenbankprogrammierung 7
S Access vom Programm aus starten Datenbankprogrammierung 8
A Java JDBC Programm bringt auf Unix Server Fehlermeldung Datenbankprogrammierung 4
G Mit Java-Programm Datenbank löschen/neu anlegen Datenbankprogrammierung 5
C Programm baut zu viele MySQL Verbindungen auf Datenbankprogrammierung 4
S Postgresql DB - Performancetest - Programm, Logfile etc. Datenbankprogrammierung 2
M vorschläge bzgl. java programm mit datenbankanbindung Datenbankprogrammierung 4
C wie soll ich eine bean in mein programm integriegren? Datenbankprogrammierung 2
B Importieren in MySQL mit Java-Programm Datenbankprogrammierung 2
B Exportieren aus MySQL mit Java-Programm Datenbankprogrammierung 11
P Wie übergebe ich einen NULL Wert in meinem Java-Programm? Datenbankprogrammierung 7
A Programm in Autostart startet bevor DB gestartet ist Datenbankprogrammierung 2
L Programm-Architektur bei DB-Zugriff Datenbankprogrammierung 6
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
E Zwischen Datenbanken wechseln Datenbankprogrammierung 13
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
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
F Zwischen Datenbanken wählen auf SQL-Server 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

Ähnliche Java Themen

Neue Themen


Oben