IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
logo

FAQ JDBCConsultez toutes les FAQ

Nombre d'auteurs : 8, nombre de questions : 162, derni�re mise � jour : 3 juin 2015  Ajouter une question

 

Cette FAQ a �t� r�alis�e � partir des questions fr�quemment pos�es sur les forums de http://www.developpez.com et de l'exp�rience personnelle des auteurs.

Nous tenons � souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne pr�tend pas non plus �tre compl�te. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant r�dacteur, lisez ceci.

SommaireLes RowSetLes WebRowSet (3)
pr�c�dent sommaire suivant
 

Les WebRowSet peuvent �crire leurs donn�es, m�tadonn�es et propri�t�s sous forme de fichiers XML. De m�me, ils peuvent se peupler � partir d'un tel fichier. Les m�thodes employ�es sont naturellement susceptibles de lever des IOException, en plus des SQLException.

�criture

Code java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
WebRowSet rowset = new WebRowSetImpl(); 
//mise en place des propri�t�s et peuplement 
FileWriter writer = null; 
try{ 
   File destination = ... ;  
   writer = new FileWriter(destination); 
   rowset.writeXml(writer); 
}catch(IOException ioe){ 
   //etc. 
}catch(SQLException sqle){ 
   //etc. 
} 
finally{ 
   if(writer!=null){try{writer.close();}catch(Exception e){}} 
}
Lecture

Code java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
WebRowSet rowset =new WebRowSetImpl(); 
FileReader reader = null; 
try{ 
   File source = ...;  
   rowset.readXml(source); 
}catch(IOException ioe){ 
   //etc. 
}catch(SQLException sqle){ 
   //etc. 
} 
finally{ 
   if(reader!=null){try{reader.close();}catch(Exception e){}} 
}
Naturellement, le fichier source doit �tre un fichier XML bien form� (cf. Comment sont form�s les fichiers XML des WebRowSet ? ).

Mis � jour le 11 avril 2013 Ioan

Un des avantages de WebRowSet est le fait que l'on n'est pas limit� � l'�criture ou � la lecture de fichiers. WebRowSet est capable d'�crire (ou de lire) sur n'importe quel type de flux. Cette capacit� peut �tre particuli�rement utile dans les applications web. Voici l'exemple d'une servlet :

Code java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Class.forName("com.mysql.jdbc.Driver"); 
//r�cup�ration des param�tres de la requ�te 
String url = request.getParameter("url"); 
String username = request.getParameter("username"); 
String password = request.getParameter("password"); 
String command = request.getParameter("command"); 
  
//cr�ation et ex�cution du RowSet 
WebRowSet rowset = new WebRowSetImpl(); 
rowset.setUrl(url); 
rowset.setUsername(username); 
rowset.setPassword(password); 
rowset.setCommand(command); 
rowset.execute(); 
  
//�criture de la r�ponse 
response.setContentType("text/xml"); 
PrintWriter out = response.getWriter(); 
//rajout d'une �ventuelle feuille de style 
out.println("<?xml:stylesheet type=\"text/xsl\" href=\"simple.xsl\"?>"); 
//�criture du rowset 
rowset.writeXml(out); 
  
out.close();
Le contenu du WebRowSet est directement �crit sur le flux de la r�ponse. Vous pouvez m�me ajouter en d�but de page un lien vers une feuille de style XSL pour mettre en forme les r�sultats.

Mis � jour le 11 avril 2013 Ioan

Les fichiers XML correspondant aux WebRowSet ont pour racine un n�ud WebRowSet. Celui-ci contient trois types de n�uds, qui repr�sentent respectivement les propri�t�s, les m�tadonn�es et les donn�es du WebRowSet.

Structure g�n�rale :

Code xml : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0"?> 
<webRowSet xmlns="http://java.sun.com/xml/ns/jdbc"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/jdbc http://java.sun.com/xml/ns/jdbc/webrowset.xsd"> 
   <properties> 
      <!-- Contient les propri�t�s du WebRowSet --> 
   </properties> 
   <metadata> 
      <!-- Contient les m�tadonn�es du WebRowSet --> 
   </metadata> 
   <data> 
      <!-- Contient les donn�es du WebRowSet --> 
   </data> 
</webRowSet>
Structure des propri�t�s :

Code xml : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<properties> 
   <command>SELECT * FROM TestWebRowSet</command> 
   <concurrency>1008</concurrency> 
   <datasource><null/></datasource> 
   <escape-processing>true</escape-processing> 
   <fetch-direction>1000</fetch-direction> 
   <fetch-size>0</fetch-size> 
   <isolation-level>2</isolation-level> 
   <key-columns></key-columns> 
   <map></map> 
   <max-field-size>0</max-field-size> 
   <max-rows>0</max-rows> 
   <query-timeout>0</query-timeout> 
   <read-only>true</read-only> 
   <rowset-type>ResultSet.TYPE_SCROLL_INSENSITIVE</rowset-type> 
   <show-deleted>false</show-deleted> 
   <table-name>TestWebRowSet</table-name> 
   <url>jdbc:mysql://localhost/JDBC</url> 
   <sync-provider> 
      <sync-provider-name>com.sun.rowset.providers.RIOptimisticProvider</sync-provider-name> 
      <sync-provider-vendor>Sun Microsystems Inc.</sync-provider-vendor> 
      <sync-provider-version>1.0</sync-provider-version> 
      <sync-provider-grade>2</sync-provider-grade> 
      <data-source-lock>1</data-source-lock> 
   </sync-provider> 
</properties>
Cette partie contient les propri�t�s du WebRowSet, mais aussi des informations sur le SyncProvider (celui de Sun dans l'exemple). On peut remarquer l'absence des propri�t�s username et password, qui naturellement doivent rester secr�tes.

Structure des m�tadonn�es :

Code xml : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
<metadata> 
   <column-count>4</column-count> 
   <column-definition> 
       <!-- Informations sur la premi�re colonne --> 
   </column-definition> 
   <column-definition> 
       <!-- Informations sur la deuxi�me colonne --> 
   </column-definition> 
   <!-- etc. --> 
</metadata>
Les balises column-definition contiennent les informations relatives aux colonnes. Ces informations sont les m�mes que celles accessibles gr�ce aux m�tadonn�es. Par exemple :

Code xml : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   <column-index>2</column-index> 
   <auto-increment>false</auto-increment> 
   <case-sensitive>true</case-sensitive> 
   <currency>false</currency> 
   <nullable>1</nullable> 
   <signed>true</signed> 
   <searchable>true</searchable> 
   <column-display-size>7</column-display-size> 
   <column-label>unDecimal</column-label> 
   <column-name>unDecimal</column-name> 
   <schema-name></schema-name> 
   <column-precision>5</column-precision> 
   <column-scale>2</column-scale> 
   <table-name>TestWebRowSet</table-name> 
   <catalog-name></catalog-name> 
   <column-type>3</column-type> 
   <column-type-name>DECIMAL</column-type-name>
Structure des donn�es :

Code xml : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
   <currentRow> 
      <columnValue>1</columnValue> 
      <columnValue>0.01</columnValue> 
      <columnValue>chaine 0</columnValue> 
      <columnValue>1088200800000</columnValue> 
   </currentRow> 
   <currentRow> 
      <!-- donn�es de la deuxi�me ligne --> 
   </currentRow> 
   <!-- etc. pour chaque ligne du WebRowSet -->
La balise data peut contenir trois autres types de balises, dont le contenu est identique � currentRow. Celles-ci d�finissent les lignes ajout�es, modifi�es ou supprim�es.

Code xml : S�lectionner tout
1
2
3
4
5
6
<insertRow></insertRow> 
<modifyRow> 
   <columnValue>valeurInitiale</columnValue>    
   <updateValue>valeurModifiee</updatevalue> 
</modifyRow> 
<deleteRow></deleteRow>
Les trois types de balises peuvent contenir des balises updateValue, qui repr�sentent les valeurs modifi�es.

Mis � jour le 11 avril 2013 Ioan

Proposer une nouvelle r�ponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plut�t sur le forum de la rubrique pour �a


R�ponse � la question

Liens sous la question
pr�c�dent sommaire suivant
 

Les sources pr�sent�es sur cette page sont libres de droits et vous pouvez les utiliser � votre convenance. Par contre, la page de pr�sentation constitue une �uvre intellectuelle prot�g�e par les droits d'auteur. Copyright � 2025 Developpez Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'� trois ans de prison et jusqu'� 300 000 � de dommages et int�r�ts.