Datenbank Connection Pooling

Jejune

Grünschnabel
Hallo,
ich hätte da mal ein paar grundlegende Fragen zum Connection Pooling bei Datenbanken(also jetzt konkret Mysql)
vlt. kann mir ja jmd. helfen.....


Also folgende Sache...habe mich jetzt schon 2 Tage mit der Sache beschäftigt...aber ich krieg das einfach nicht hin:


zum einen ist das ja so ich kann über JNDI mit:

InitialContext ctx = new InitialContext();

DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySQLDB");

conn = ds.getConnection();


ja die ganze Sache machen.....
nur die ganzen Beispiele die ich gesehen hab gehen einfach davon aus, dass man J2EE einsetzt....
wenn ich das nicht machen, habe ich ja keinen InitialContext
kann ich den irgendwie bekommen? den selbst erstellen..?


andererseits könnte ich doch auch einfach:

MysqlConnectionPoolDataSource l=new MysqlConnectionPoolDataSource();
l.getConnection machen.....

dann bekomme ich doch auch gepoolte Connections oder...?
nur eben nicht mit JNDI..


----------
dann noch eine Frage:
würde ein Anwendungsaufbau mit Pooled Connections so Sinn machen:
ich habe einige Threads, die ab und an oder manhe auch dauerhaft Datenbank Aktionen durchführen müssen.
Habe mir nun gedacht, ich habe eine Klasse die nenn ich "DatenbankConnection" oder so und die gibt den Threads dann auf Methoden Aufruf ein Connection Objekt zurück. Auf dem die Threads dann arbeiten und wenn nicht mehr benötig es closen.

Das einzige was mich daran stört, ist dass ich denCode für die Datenbank Aktionen eigentlich nicht in den Threads haben wollte....aber wenn ich die SQL PreparedStatements in eine Methode der Klasse "DatenbankConnection" schreibe und diese dann mit den Parametern aufrufe ist das zwar toll.....aber könnte das dann noch parallel ablaufen...? ich mein können mehrere Threads gleichzeitig eine Methode von einem Objekt nutzen..? nur wenn ich die Methode als static setze oder?
würde das dann also so SInn machen:

public class Datenbank {
static MysqlConnectionPoolDataSource pool;

public Datenbank(){
pool=new MysqlConnectionPoolDataSource();
}

public executePreparedStatement(String s) {
Connection c= pool.getConnection();
c.execute(....)


also so in dem Schema...? oder lieg ich total daneben




Naja ihr seht schon Fragen über Fragen...:(
vlt kann mir ja jmd helfen, das wär echt super
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück