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 ();
< p > //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 »); .
< p > 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ù
< p > //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
} }
.