Vous pouvez maintenant remplir de nombreuses tâches à travers Java Database Connectivity ( JDBC ) Interface de programmation d'application (API) en utilisant des colonnes CLOB base de données. CLOB , qui signifie « Character Large Object », est un outil de données utilisée pour stocker et récupérer de grandes quantités de données textuelles au format caractère . Un CLOB est capable de stocker jusqu'à 128 téraoctets de données de caractère dans la base de données . Sa pleine compatibilité avec Java en fait un choix privilégié par de nombreux développeurs de logiciels. Instructions 1 Utilisez le fragment de code suivant pour créer un objet CLOB , où " rs" est un objet ResultSet : Clob clob = rs.getClob (1); " clob " variable est maintenant un opérateur fonctionnel sur la valeur CLOB stocké dans la première colonne du jeu de résultats "rs ". 2 Entrez le code suivant dans votre base de données pour exécuter deux Les valeurs CLOB identiques dans une nouvelle table , qui sont capables de contenir 500 kilo-octets de données de texte redondants : java.sql d'importation * ; PutGetClobs public class { public. static void main ( string [] args) throws SQLException { //enregistrer le pilote JDBC natif . try { < p> Class.forName ( " COM.ibm.db2.jdbc.app.DB2Driver "); } catch (Exception e) { System.exit (1); //Setup . erreur } //établir une connexion et énoncé avec lequel travailler connexion c = DriverManager.getConnection ( "jdbc : db2 : * locale »). ; = la c.createStatement de Déclaration (); //nettoyer tout exécution précédente de cette application try { s.executeUpdate ( . " DROP tABLE CUJOSQL.CLOBTABLE "); } catch ( SQLException e) { //Ignore it - assumer la table n'existait pas } . //Création d' une table avec une colonne CLOB . La valeur par défaut CLOB colonne //taille est de 1 Mo s.executeUpdate ( "CREATE TABLE CUJOSQL.CLOBTABLE ( COL1 CLOB )"); . //Création d' un objet PreparedStatement qui vous permettent de mettre //un nouvel objet Clob dans la base de données PreparedStatement ps = c.prepareStatement ( "INSERT INTO VALUES CUJOSQL.CLOBTABLE ( ) ? "); . //Création d' une valeur de grande CLOB ... tampon StringBuffer de = new StringBuffer ( 500000 ) ; while ( buffer.Length () < 500000 ) {< br > buffer.append (« Tout le travail et aucun jeu ne fait Cujo un garçon terne . "); } cordes clobValue = buffer.toString (); //Définissez le paramètre PreparedStatement . Ce n'est pas //portable à tous les pilotes JDBC . Pilotes JDBC n'ont pas //pour soutenir setBytes pour les colonnes CLOB . Ceci est fait pour //vous permettent de générer de nouvelles CLOBs . Il a également //JDBC 1.0 permet aux conducteurs une façon de travailler avec des colonnes contenant /data /CLOB ps.setString (1, clobValue ) . //Traitement de la déclaration , en insérant le clob dans la base de données ps.executeUpdate (); . //Process une requête et obtenir le CLOB qui vient d'être insérés sur le Photos //base de données comme un objet Clob ResultSet rs = s.executeQuery ("SELECT * FROM CUJOSQL.CLOBTABLE "); . rs.next (); Clob clob = rs.getClob (1); //Put qui Clob nouveau dans la base de données via //le PreparedStatement ps . . setClob (1, clob ) ; ps.execute (); c.close (); //Connexion à proximité ferme également stmt et RS } < br . > } 3 Insérez le code suivant dans votre base de données pour modifier le comportement de vos objets CLOB : . java.sql d'importation * ; UpdateClobs public class { publics static void main (String [] args ) throws SQLException { //Enregistrement de la JDBC natif conducteur try { Class.forName ( " COM.ibm.db2.jdbc.app.DB2Driver "); } . catch (Exception e) { < br > System.exit (1); erreur //Setup } connexion c = DriverManager.getConnection ( "jdbc : db2 : * locale »); . Déclaration s = c.createStatement (); ResultSet rs = s.executeQuery ("SELECT * FROM CUJOSQL.CLOBTABLE "); rs.next (); < p> Clob clob1 = rs.getClob (1); rs.next (); Clob clob2 = rs.getClob (1); //tronquer une . CLOB clob1.truncate ( (long) 150000 ) ; System.out.println (" nouvelle longueur de Clob1 est " + clob1.length ()); //Mettre à jour une partie de la CLOB avec une nouvelle valeur de chaîne valeur String = "Certains de nouvelles données pour une fois »; . int charsWritten = clob2.setString ( 500L , value) ; System.out.println ( "Caractères écrite est " + charsWritten ) ; //Les octets peuvent être trouvés à la position 500 dans clob2 longue startInClob2 = clob2.position ( valeur 1); System.out.println ( "pattern trouvé à partir de la position" + startInClob2 ) ; c.close (); //Connexion à proximité ferme également stmt et RS . } } 4 Appliquer le code suivant pour exécuter CLOB dans votre base de données. CLOB se fermera automatiquement après l'exécution de ses fonctions énumérées ci-dessous java.sql d'importation * ; . . UseClobs public class { publics static void main (String [] args ) throws SQLException { //enregistrer le pilote JDBC natif . try { Class.forName ( " com . ibm.db2.jdbc.app.DB2Driver "); } catch (Exception e) { System.exit (1); . erreur //Setup } connexion c = DriverManager.getConnection ( "jdbc : db2 : * locale »); Déclaration s = c.createStatement (); ResultSet rs = s . executeQuery ( "SELECT * FROM CUJOSQL.CLOBTABLE "); rs.next (); Clob clob1 = rs.getClob (1); rs.next ( ) ; Clob clob2 = rs.getClob (1); //Déterminer la longueur d'un LOB longue fin de = clob1.length (); . < br > System.out.println (" longueur Clob1 est " + clob1.length ()); //Lorsque vous travaillez avec des objets LOB , tous indexation qui est lié à leur //1 est basé , et non sur 0 comme les chaînes et les tableaux longue startingpoint = 450 ; . longue endingPoint = 50; //Obtenir le cadre de la CLOB comme un tableau d'octets cordes outString = clob1.getSubString ( startingpoint , (int) endingPoint ) . System.out.println (" Clob chaîne est " + outString ) ; < br > //Trouver où un sous- CLOB ou chaîne est d'abord trouvé dans un //CLOB . La mise en place de ce programme a placé deux copies identiques de //a CLOB répéter dans la base de données. Ainsi, la position de départ de la //string extraite de clob1 se trouve dans le départ //position dans clob2 si la recherche commence près de l'endroit où //la chaîne commence longue startInClob2 = clob2.position ( outString , 440) ; . System.out.println ( "pattern trouvé à partir de la position" + startInClob2 ) ; < br > c.close (); //Connexion à proximité ferme également stmt et RS } } .
|