Du kan nå fullføre en rekke oppgaver gjennom Java Database Connectivity ( JDBC) Application Programming Interface ( API ) ved hjelp av databasen CLOB kolonner . CLOB , som står for " Character stort objekt , " er et dataverktøy som brukes for lagring og gjenfinning av store mengder tekst data i karakter format . En CLOB kan lagre opp til 128 terabyte tegn data i databasen. Sin full kompatibilitet med Java gjør det til et foretrukket valg av mange programvareutviklere. Instruksjoner
en
Bruk følgende kode fragment å skape en CLOB objekt , der " rs " er en ResultSet objekt : en
clob clob = rs.getClob ( 1 ) ;
variabelen " clob " er nå en funksjonell operatør på CLOB verdien som er lagret i den første kolonnen av resultatet sett " rs ".
2
Inngang til følgende kode i databasen til å kjøre to identiske CLOB verdier i en ny tabell , som er i stand inneholder 500 kilobyte av overflødige tekst data:
import java.sql * ;
public class PutGetClobs {
publikum. static void main ( String [] args )
kaster SQLException
{
//Registrer native styreprogrammet .
prøve {
< p> Class.forName ( " COM.ibm.db2.jdbc.app.DB2Driver ");
} catch ( Exception e ) {
System.exit ( 1 ), //Setup . feil
}
//opprette en forbindelse og erklæringen som å arbeide
Connection c = DriverManager.getConnection ( " JDBC: db2 : * lokale" ) . ;
Statement s = c.createStatement ();
//Rydd opp noe tidligere kjøring av dette programmet
try {
s.executeUpdate ( . " DROP tABLE CUJOSQL.CLOBTABLE ");
} catch ( SQLException e ) {
//Ignorer det - anta tabellen ikke eksisterte
}
.
//Lag en tabell med en CLOB kolonne. Standard CLOB kolonne
//størrelse er 1 MB
s.executeUpdate ( "CREATE TABLE CUJOSQL.CLOBTABLE ( col1 clob ) "); .
//Lag en PreparedStatement objekt som lar deg sette
//en ny CLOB objekt i databasen
PreparedStatement ps = c.prepareStatement ( " INSERT INTO CUJOSQL.CLOBTABLE VALUES ( ) ? "); .
//Lag en stor CLOB verdi ...
StringBuffer buffer = new StringBuffer ( 500000 ) ;
while ( buffer.length ( ) < 500000 ) {
buffer.append ( "Alt arbeid og ingen play gjør Cujo en kjedelig gutt . ");
}
String clobValue = buffer.toString ();
< p > //Sett PreparedStatement parameter. Dette er ikke
//portable til alle JDBC drivere. JDBC drivere ikke har
//for å støtte setBytes for CLOB kolonner . Dette er gjort for å
//lar deg generere nye CLOBs . Det også
//JDBC 1,0 drivere en måte å arbeide med kolonner som inneholder
//CLOB data
ps.setString ( 1 , clobValue ); .
//Prosess uttalelsen , sette clob inn i databasen
ps.executeUpdate (); .
//Prosess en spørring og få CLOB som nettopp ble satt ut av
//database som CLOB objekt
ResultSet rs = s.executeQuery ( "SELECT * FROM CUJOSQL.CLOBTABLE "); .
rs.next ();
clob clob = rs.getClob ( 1 ) ;
//Sett at clob tilbake i databasen gjennom
//den PreparedStatement
ps . . setClob ( 1 , clob ) ;
ps.execute ();
c.close (); //Connection nær stenger også stmt og rs
}
}
3
Sett inn følgende kode i databasen for å endre atferden til CLOB objekter: .
import java.sql * ;
public class UpdateClobs {
public static void main ( String [] args )
kaster SQLException
{
//Registrer den innfødte JDBC driver
prøve {
Class.forName ( " COM.ibm.db2.jdbc.app.DB2Driver ");
} . catch ( Exception e ) {
System.exit ( 1 ), //Setup feil
}
Connection c = DriverManager.getConnection ( " JDBC: db2 : * lokale" ); .
< 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 ) ;
//Avkort en . clob
clob1.truncate ( ( lang) 150 000 ) ;
System.out.println ( " Clob1 nye lengde er " + clob1.length ( ) ) ;
//Oppdater en del av CLOB med en ny String verdi
String value = " Noen nye data for en gangs skyld "; .
int charsWritten = clob2.setString ( 500L , verdi) ;
System.out.println ( " Tegn skrevet er " + charsWritten ) ;
//De byte kan bli funnet i posisjon 500 i clob2
lang startInClob2 = clob2.position (verdi, 1) ;
System.out.println ( "mønster funnet starter i posisjon " + startInClob2 ) ;
c.close (); //Connection nær stenger også stmt og rs .
}
}
4
Bruk følgende kode for å utføre clob i databasen. Clob vil lukke automatisk etter at utførelsen av sin funksjon som er oppført nedenfor
import java.sql * ; . .
Public class UseClobs {
public static void main ( String [] args )
kaster SQLException
{
//Registrer native styreprogrammet .
try {
Class.forName ( " com . ibm.db2.jdbc.app.DB2Driver ");
} catch ( Exception e ) {
System.exit ( 1 ); . //Setup feil
}
Connection c = DriverManager.getConnection ( " JDBC: db2 : * lokale ");
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 ) ;
//Bestem lengden på en LOB
lange enden = clob1.length (); .
System.out.println ( " Clob1 lengde er " + clob1.length ( ));
//Når du arbeider med LOB , all indeksering som er knyttet til dem
//er en -basert, og ikke 0 - basert som strenger og arrayer
lang utgangspunkt = 450 ; .
lang endingPoint = 50;
//Skaff en del av clob som en byte array
String outString = clob1.getSubString ( startpunkt , ( int ) endingPoint ); .
System.out.println ( " clob delstrengen er " + outString );
//Finn hvor en sub - clob eller strengen er første funnet innenfor en
//CLOB . Oppsettet for dette programmet plassert to identiske kopier av
//en gjentatt clob inn i databasen . Dermed kan startposisjonen til den
//string hentet fra clob1 bli funnet i start
//posisjon i clob2 hvis søket begynner nær posisjonen der
< p > //strengen starter
lang startInClob2 = clob2.position ( outString , 440 ) ; .
System.out.println ( "mønster funnet starter i posisjon " + startInClob2 ) ;
c.close (); //Connection nær stenger også stmt og rs
}
}
.