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.
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){}} } |
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){}} } |
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(); |
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> |
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> |
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> |
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> |
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 --> |
Code xml : | Sélectionner tout |
1 2 3 4 5 6 | <insertRow></insertRow> <modifyRow> <columnValue>valeurInitiale</columnValue> <updateValue>valeurModifiee</updatevalue> </modifyRow> <deleteRow></deleteRow> |
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 çaLes 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 © 2024 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.