È ora possibile completare numerose attività attraverso Java Database Connectivity ( JDBC ) Application Programming Interface (API ) utilizzando le colonne del database CLOB . CLOB , che sta per " Character Large Object , " è uno strumento di dati utilizzato per la memorizzazione e il recupero di grandi quantità di dati di testo in formato carattere . Un CLOB è in grado di memorizzare fino a 128 terabyte di dati di caratteri nel database. La sua piena compatibilità con Java lo rende una scelta preferita da molti sviluppatori di software . Istruzioni
1
Utilizzare il seguente frammento di codice per creare un oggetto CLOB , dove " rs" è un oggetto ResultSet :
Clob clob = rs.getClob ( 1) ;
la variabile " clob " è ora un operatore funzionale sul valore CLOB memorizzato nella prima colonna del set di risultati " rs ".
2
input il seguente codice per il database per eseguire due valori CLOB identici in una nuova tabella , che sono in grado di contenere 500 kilobyte di dati di testo ridondanti :
import java.sql * ;
PutGetClobs public class {
pubblico . static void main ( String [] args ) per
getta SQLException
{
//Registrazione del driver JDBC nativo .
try {
< p > Class.forName ( " com.ibm.db2.jdbc.app.DB2Driver " ) ;
} catch ( Exception e) {
System.exit ( 1 ) ; //Setup . errore
}
//stabilire una connessione e la dichiarazione con cui lavorare
Connection c = DriverManager.getConnection ( "jdbc : db2 : * locale") . ;
Statement s = c.createStatement ();
//Pulire ogni precedente esecuzione di questa applicazione
try {
s.executeUpdate ( . "DROP tABLE CUJOSQL.CLOBTABLE ");
} catch ( SQLException e) {
//Ignora esso - assumere la tavola non esisteva
}
.
//Creare una tabella con una colonna CLOB . La colonna CLOB
//dimensione di default è 1 MB
s.executeUpdate ( "CREATE TABLE CUJOSQL.CLOBTABLE ( COL1 CLOB )"); .
//Creazione di un oggetto PreparedStatement che permettono di mettere
//un nuovo oggetto Clob nel database
PreparedStatement ps = c.prepareStatement ( "INSERT INTO CUJOSQL.CLOBTABLE ( ) ? ") .
//Crea un grande valore CLOB ...
StringBuffer di buffer = new StringBuffer ( 500000 ) ;
mentre ( buffer.Length ( ) < 500000 ) { < br >
buffer.append ( "Tutto lavoro e niente svago rende Cujo un ragazzo ottuso . "); }
String clobValue = buffer.toString ();
< p > //Imposta il parametro PreparedStatement . Questo non è
//portatile per tutti i driver JDBC . I driver JDBC non hanno
//per sostenere setBytes per le colonne CLOB . Questo viene fatto per
//consentono di generare nuove CLOB . E anche
//consente JDBC 1.0 conducenti un modo di lavorare con le colonne contenenti
/dati /Clob
ps.setString ( 1 , clobValue ) .
//processo di dichiarazione , inserendo il clob nel database
ps.executeUpdate ( ) .
//processo di una query e ottenere il CLOB che è stato appena inserito dal
//database come oggetto Clob
ResultSet rs = s.executeQuery ( "SELECT * FROM CUJOSQL.CLOBTABLE ") .
rs.next ( ) ;
Clob clob = rs.getClob ( 1) ;
//Put che Clob nuovamente nel database attraverso
//il PreparedStatement
ps . . setClob ( 1 , clob ) ;
ps.execute ();
c.close ( ) ; //Connection vicino chiude anche stmt e rs
} < br . >
}
3
Inserire il seguente codice per il database per modificare il comportamento degli oggetti CLOB : .
import java.sql
* ;
UpdateClobs public class {
public static void main (String [] args ) per
getta SQLException
{
//Registra il nativo JDBC autista
try {
Class.forName ( " com.ibm.db2.jdbc.app.DB2Driver " ) ;
} . catch (Exception e) { < br
System.exit > ( 1) ; errore //Setup
}
Connection c = DriverManager.getConnection ( "jdbc : db2 : * locale") ; .
< p > Statement 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) ;
//troncare una . CLOB
clob1.truncate ( (long ), 150000 ) ;
System.out.println ( " nuova lunghezza di Clob1 è" + clob1.length ( ) ) ;
//Aggiorna una porzione del CLOB con un nuovo valore stringa
String value = " Alcuni nuovi dati per una volta "; .
int charsWritten = clob2.setString ( 500L , valore ) ;
System.out.println ( " caratteri scritti è " + charsWritten ) ;
//I byte può essere trovato alla posizione 500 nel clob2
lungo startInClob2 = clob2.position ( valore , 1) ;
System.out.println ( " modello trovato a partire dalla posizione " + startInClob2 ) ;
c.close ( ) ; //Connection vicino chiude anche stmt e RS .
}
}
4
Applicare il seguente codice per eseguire CLOB nel database. CLOB si chiuderà automaticamente dopo aver eseguito le sue funzioni sotto elencate
import java.sql
* , . .
UseClobs public class {
public static void main (String [] args ) per
getta SQLException
{
//Registrazione del driver JDBC nativo .
try {
Class.forName ( " com . ibm.db2.jdbc.app.DB2Driver ");
} catch ( Exception e) {
System.exit ( 1 ) . errore //Setup
}
Connection c = DriverManager.getConnection ( "jdbc : db2 : * locale") ;
Statement 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) ;
//determinare la lunghezza di un LOB
lungo termine = clob1.length ( ) . < br
System.out.println > ( " lunghezza Clob1 è" + clob1.length ());
//Quando si lavora con LOB , tutto indicizzazione che è legato al loro
//è in base 1 e non 0 -based come stringhe e array
lungo startingPoint = 450; .
lungo endingPoint = 50;
//Ottenere parte del CLOB come matrice di byte
String outString = clob1.getSubString ( startingPoint , ( int) endingPoint ) .
System.out.println (" Clob sottostringa è" + outString ) ; < br >
//Trova dove un sub- CLOB o stringa viene prima trovato all'interno di un
//CLOB . L' installazione di questo programma messo due copie identiche di
//a CLOB ripetendo nel database. Così, la posizione iniziale della
//stringa estratta dal clob1 può essere trovato nella partenza
//posizione in clob2 se la ricerca ha inizio in prossimità del punto in cui
< p > //la stringa inizia
lungo startInClob2 = clob2.position ( outString , 440 ) .
System.out.println ( " modello trovato a partire dalla posizione " + startInClob2 ) ; < br
c.close > ( ) ; //Connection vicino chiude anche stmt e rs
}
}
.