Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

de l'aide svp ! (Struts et DataSource)

1 réponse
Avatar
Dominique Crétel
Bonjour,

Je débute avec J2EE...
...et encore plus avec Struts !

Voilà, j'ai écrit en J2EE une classe de connexion à ma base de données
contenant une méthode comme celle-ci :

-----
public Connection connection() {
Connection con = null;
String hostName = "localhost:3306";
String serverName = "dbtest";
String user = "root";
String password = "";
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://" + hostName + "/" + serverName;
con = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
System.out.println("Problème de connexion");
}
return con;
}
-----

Cette application fonctionne correctement, en J2EE !

Or je veux maintenant utiliser les pull de connection Struts.
Mais sans trop modifier mon code pour l'instant !

Pour cela, j'ai défini dans mon struts-config.xml ceci :

-----
<data-sources>
<data-source key="madb" type="org.apache.commons.dbcp.BasicDataSource">
<set-property
property="driverClassName"
value="com.mysql.jdbc.Driver" />
<set-property
property="url"
value="jdbc:mysql://localhost:3306/dbtest" />
<set-property
property="username"
value="root" />
<set-property
property="password"
value="" />
<set-property
property="maxActive"
value="10" />
<set-property
property="maxWait"
value="5000" />
<set-property
property="defaultAutoCommit"
value="false" />
</data-source>
</data-sources>
-----

et je veux changer ma méthode de connexion.
Mon problème est ici :

-----
public Connection connection() {
DataSource ds = null;
Connection cnx = null;
try {
ds = getDataSource(request, "madb");
cnx = ds.getConnection();
} catch (Exception e) {
System.out.println("Problème de connexion");
}
return cnx;
}
-----

je veux garder la structure de mon programme, et donc ma méthode de
connexion.
Or, les exemples d'utilisation des DataSources impose le codage dans les
requests !!!
et moi, je n'en ai pas dans cette méthode !!!
Comment faire pour y arriver ?

1 réponse

Avatar
serval
Voilà, j'ai écrit en J2EE une classe de connexion à ma base de données
contenant une méthode comme celle-ci :

-----
public Connection connection() {
Connection con = null;
String hostName = "localhost:3306";
String serverName = "dbtest";
String user = "root";
String password = "";
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://" + hostName + "/" + serverName;
con = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
System.out.println("Problème de connexion");
}
return con;
}
-----

Cette application fonctionne correctement, en J2EE !

Or je veux maintenant utiliser les pull de connection Struts.
Mais sans trop modifier mon code pour l'instant !
Cette pratique ne semble pas très conseillée, 1 lien pour cela (cf les

notes à la fin) : http://rr0.org/java/Struts.html
Utilise le pool de connexions du serveur d'application plutôt.