Bien qu'il ne soit pas recommandé de gérer la persistence des données dans la couche de présentation, il peut être utile d'accéder aux datasources directement.
Le DataSource manager de Struts est le composant en charge de la gestion des DataSources; il est configuré directement dans le fichier de configuration struts-config.xml. il peut être utilisé pour déployer n'importe quel pool de connections qui implémente l'interface javax.sql.DataSource.
Si aucun composant natif n'est livré, vous pouvez aussi utiliser le Jakarta Commons dbcp's BasicDataSource [org.apache.commons.dbcp.BasicDataSource] disponible dans le projet Commons chez Jakarta.
Vous devez configurer votre source de données (exemple pour PostgreSQL):
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
<set-property
property="driverClassName"
value="org.postgresql.Driver" />
<set-property
property="url"
value="jdbc:postgresql://localhost/mydatabase" />
<set-property
property="username"
value="me" />
<set-property
property="password"
value="test" />
<set-property
property="maxActive"
value="10" />
<set-property
property="maxWait"
value="5000" />
<set-property
property="defaultAutoCommit"
value="false" />
<set-property
property="defaultReadOnly"
value="false" />
<set-property
property="validationQuery"
value="SELECT COUNT(*) FROM users" />
</data-source>
</data-sources>
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception
{
javax.sql.DataSource dataSource;
java.sql.Connection myConnection;
try
{
dataSource = getDataSource(request);
myConnection = dataSource.getConnection();
}
catch (SQLException sqle)
{
...
}
finally
{
try {
myConnection.close();
} catch (SQLException e) {
getServlet().log("Connection.close", e);
}
}
}