Du kan nu udføre mange opgaver gennem Java Database Connectivity ( JDBC ) Application Programming Interface ( API ) ved hjælp af database CLOB kolonner. CLOB , der står for " Character stort objekt ", er en data værktøj, der anvendes til lagring og genfinding af store mængder tekst data i karakter format. Et CLOB kan lagre op til 128 terabyte tegn data i databasen . Dens fulde kompatibilitet med Java gør det foretrukne valg af mange softwareudviklere. Instruktioner
1
Brug følgende kode fragment til at oprette en CLOB objekt , hvor " rs " er en ResultSet objekt : Hej
CLOB CLOB = rs.getClob (1) ;
variablen " CLOB " er nu en funktionel operatør på CLOB værdi gemt i den første kolonne af resultatet sæt " rs ".
2
Indtast følgende kode til din database til at køre to identiske CLOB værdier i en ny tabel , der er i stand indeholdende 500 kilobyte redundant tekst data:
import java.sql * ;
public class PutGetClobs {
offentligheden. static void main ( String [] args )
kaster SQLException
{
//Registrer native JDBC driver.
try {
< p> Class.forName ( " com.ibm.db2.jdbc.app.DB2Driver ");
} catch ( Exception e ) {
System.exit ( 1 ) //Opsætning . fejl
}
//Etabler en forbindelse og Statement med at arbejde
Connection c = DriverManager.getConnection ( " jdbc : db2 : * lokal "). ;
Statement s = c.createStatement ();
//Ryd op alle tidligere løb i denne ansøgning
try {
s.executeUpdate ( . " DROP tABLE CUJOSQL.CLOBTABLE ");
} catch ( SQLException e ) {
//Ignorer det - antager tabellen ikke eksisterer
}
.
//Opret en tabel med et CLOB kolonne. Standarden CLOB kolonnen
//størrelse er 1 MB
s.executeUpdate ( " CREATE TABLE CUJOSQL.CLOBTABLE ( col1 CLOB )"); .
//Opret en PreparedStatement objekt, der giver dig mulighed for at sætte
//en ny CLOB objekt i databasen
PreparedStatement ps = c.prepareStatement ( " INSERT INTO CUJOSQL.CLOBTABLE VALUES ( ) ?") ; . < br >
//Opret et stort CLOB værdi ...
StringBuffer buffer = new StringBuffer ( 500000 ),
while ( buffer.length () < 500000 ) { < br >
buffer.append ( "Alt arbejde og ingen play gør Cujo en kedelig dreng . ");
}
String clobValue = buffer.toString ();
< p > //Sæt PreparedStatement parameter. Dette er ikke nær
//bærbare til alle JDBC drivere . JDBC drivere ikke har
//for at støtte setBytes for CLOB kolonner. Dette gøres til
//tillade dig at generere nye CLOBs . Det er også
//giver JDBC 1,0 chauffører en måde at arbejde med kolonner , der indeholder
//CLOB data
ps.setString (1, clobValue ) .
//Process redegørelsen, indsætte CLOB i databasen
ps.executeUpdate (); .
//Proces en forespørgsel og få CLOB , der lige er isat ud af
//database som en CLOB objekt
ResultSet rs = s.executeQuery ( "SELECT * FROM CUJOSQL.CLOBTABLE ") .
rs.next (); < br >
CLOB CLOB = rs.getClob (1),
//Put at CLOB tilbage i databasen via
//det PreparedStatement
ps. . setClob (1, CLOB ),
ps.execute ();
c.close () //Connection close lukker også stmt og rs
} < br . >
}
3
Indsæt følgende kode til din database til at ændre adfærd dine CLOB objekter: .
import java.sql * ;
public class UpdateClobs {
offentlige static void main ( String [] args )
kaster SQLException
{
//Registrer native JDBC driver
try {
Class.forName ( " com.ibm.db2.jdbc.app.DB2Driver ");
} . catch ( Exception e ) { < br >
System.exit ( 1 ) //Setup error
}
Connection c = DriverManager.getConnection ( " jdbc : db2 : * lokal ") .
< 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),
//Afkort a . CLOB
clob1.truncate ( (lang) 150000 ),
System.out.println ( " Clob1 nye længde er " + clob1.length ());
//opdatere en del af CLOB med en ny String værdi
String value = " Nogle nye data for en gang ", .
int charsWritten = clob2.setString ( 500L , værdi) ; < br >
System.out.println ( " skrifttegn er" + charsWritten )
//De bytes kan findes på position 500 i clob2
lang startInClob2 = clob2.position (værdi, 1 ),
System.out.println ( "pattern fundet starter ved position" + startInClob2 )
c.close () //Connection close lukker også stmt og RS .
}
}
4
Påfør følgende kode til at udføre CLOB i din database. CLOB vil lukke af sig selv efter varetagelsen af sine opgaver nedenfor
import java.sql * ; . .
Public class UseClobs {
offentlige static void main ( String [] args )
kaster SQLException
{
//Registrer native JDBC driver.
try {
Class.forName ( " com . ibm.db2.jdbc.app.DB2Driver ");
} catch ( Exception e ) {
System.exit ( 1),. //Setup error
}
Connection c = DriverManager.getConnection ( " jdbc : db2 : * lokal ")
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 længden af en LOB
lange ende = clob1.length (); . < br >
System.out.println ( " Clob1 længde er " + clob1.length ());
//Når du arbejder med LOBs , alt indeksering , der er relateret til dem
//er 1 -baseret, og ikke 0 - baseret ligesom strenge og arrays
lange startingpoint = 450 ; .
lange endingPoint = 50 ;
//Hent del af CLOB som en byte array
String outString = clob1.getSubString ( startingpoint , ( int ) endingPoint ) .
System.out.println ( " CLOB substring er" + outString ) < br >
//Find hvor en sub- CLOB eller streng er først fundet inden for en nær
//CLOB . Opsætningen for dette program placeret to identiske kopier af
//et gentaget CLOB i databasen. Således kan startpositionen for
//string udvundet clob1 findes i start
//position i clob2 hvis søgningen begynder tæt på den position, hvor
< p > //strengen starter
lang startInClob2 = clob2.position ( outString , 440 ) .
System.out.println ( "pattern fundet starter ved position" + startInClob2 ) < br >
c.close () //Connection close lukker også stmt og rs
}
}
.