1 votes

Comment utiliser correctement ResultSet avec h:dataTable ?

Le problème est qu'après avoir affiché le ResultSet avec <h:dataTable> la connexion reste ouverte. Si je la ferme, la connexion est fermée. ResultSet aussi. Je pense copier le ResultSet dans un certain nombre de HashMap / ArrayList combo. Existe-t-il un bon moyen de résoudre ce problème ?

3voto

BalusC Points 498232

En effet, vous devez toujours acquérir et fermer le Connection , Statement y ResultSet dans le le plus court Il ne faut jamais les passer en dehors de la classe DAO, ni dans le champ d'application possible (de préférence à l'intérieur du même bloc de méthode). Vous devez faire correspondre les ResultSet à un List<Data> dans lequel Data représente chaque ligne du tableau. Voici un exemple basique de mappage d'un jeu de résultats :

List<Data> items = new ArrayList<Data>();
...
while (resultSet.next()) {
    Data item = new Data();
    item.setColumn1(resultSet.getString("column1"));
    item.setColumn2(resultSet.getString("column2"));
    items.add(item);
}
...
return items;

Vous pouvez alors l'utiliser dans le h:dataTable 's value attribut.

Pour plus d'exemples et d'informations, vous pouvez consulter l'un des articles suivants ou les deux :
http://balusc.blogspot.com/2006/06/using-datatables.html
http://balusc.blogspot.com/2008/07/dao-tutorial-data-layer.html

Bonne chance.

1voto

gouravg Points 11

Veuillez consulter le lien suivant : http://www.coderanch.com/t/478265/JSF/java/Displaying-array-data-tables#2585794

Je suis sûr que cela vous aidera à résoudre votre problème

0voto

cetnar Points 6170

Utilisez-vous Modèle ResultDataSet ? Si oui, notez-le dans la javadoc reste Note that the specified ResultSet MUST be scrollable .

Statement stmt=connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

Voici un exemple complet de Modèle ResultDataSet cas d'utilisation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X