| 

.NET C# Java Javascript Exception

3
Ich habe mal eine Frage bezüglich der Datenbankverbindung in Java. Da ich leider kein Javacoder bin, brauche ich dabei eure Hilfe.

ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass( "oracle.jdbc.OracleDriver" ); //loads the jdbc driver
cpds.setJdbcUrl( "Adresse der Datenbank" );
cpds.setUser("Benutzer");
cpds.setPassword("password");
cpds.setMinPoolSize(3);


So erstellt man ja eine Datenbankverbindung, wie muss ich vorangehen, wenn ich eine zweite parallel laufende Datenbankverbindung haben möchte?

Danke im voraus!
16.11.2016
deli_gicik 10 1 5
2 Antworten
0
Die Klasse ComboPooledDataSource ist m.W. nicht als Singleton implementiert.
Damit sollte folgendes funktionieren:
ComboPooledDataSource cpds1 = new ComboPooledDataSource();
cpds1.setDriverClass( "oracle.jdbc.OracleDriver" ); //loads the jdbc driver
cpds1.setJdbcUrl( "Adresse der Datenbank" );
cpds1.setUser("Benutzer");
cpds1.setPassword("password");
cpds1.setMinPoolSize(1);

ComboPooledDataSource cpds2 = new ComboPooledDataSource();
cpds2.setDriverClass( "oracle.jdbc.OracleDriver" ); //loads the jdbc driver
cpds2.setJdbcUrl( "Andere Adresse der Datenbank" );
cpds2.setUser("Anderer Benutzer");
cpds2.setPassword("other password");
cpds2.setMinPoolSize(1);

Nun hat man zwei völlig unabhängige Verbindungspools.

Eigentlich würde ich bei dieser Art besser mit einfachen Datenquellen (d.h. ohne Pool) arbeiten, da die Vorteile des Pools nur dann zum Tragen kommen, wenn ich die Anmeldungen über diese Verbindung häufig wechseln möchte. Dann gebe ich die Größe an und erstelle vor den Abfragen eine entsprechende Verbindung.
16.11.2016
edvservice 1,4k 1 6
Danke erstmal für die Antwort, das Programm dient als Visualizer und dafür brauche ich eine ständig laufende Datenbankverbindung, da sich die Daten anhand der SQL-Abfrage alle 5 min aktualisieren. Und für eine SQL-Abfrage, die ich einbinden möchte, brauche ich beide Datenbankverbindungen.
deli_gicik 18.11.2016
Dann würde ich zu Beginn die Verbindungen in einer Singleton-Klasse kapseln mit Zugriffsfunktionen auf die Verbindungen. So bleiben die Verbindungen offen und können über die Singleton-Instanz jederzeit an allen Stellen verwendet werden. Die Singletonklasse kann auch zentrl für den Abbau der Verbindungen sorgen.
edvservice 18.11.2016
Ok danke für den Tipp. Singleton sagt mir erstmal gar nichts, muss mich über das Wochenende mal einlesen. Sofern ich eine weitere Frage habe, melde ich mich.
deli_gicik 18.11.2016
0
Hier einmal der prinzipielle Aufbau einer Singleton-Klasse in Java:
public class ClassicSingleton {
private static ClassicSingleton instance = null;
protected ClassicSingleton() {
// In der "reinen" Lehre auch oft private,
// damit abgeleitete Klassen ebenfalls (class).instance() benutzen müssen.
}
public static ClassicSingleton getInstance() {
if(instance == null) {
instance = new ClassicSingleton();
}
return instance;
}
// ... weitere (static) Methoden ...
}

Weitere Einzelheiten (und Themen wie Multithreading ...) z.B. hier.
18.11.2016
edvservice 1,4k 1 6

Stelle deine Java-Frage jetzt!