Sie können nun vervollständigen zahlreiche Aufgaben durch Java Database Connectivity (JDBC) Application Programming Interface (API) mit Datenbank- CLOB Spalten . CLOB ist die Abkürzung für " Character Large Object, " ist ein Daten -Tool zum Speichern und Abrufen großer Mengen von Textdaten im Character-Format verwendet . Ein CLOB der Lage ist, die Speicherung von bis zu 128 Terabyte Charakter Daten in der Datenbank . Seine volle Kompatibilität mit Java macht es eine bevorzugte Wahl von vielen Software-Entwicklern . Anleitung
1
Verwenden Sie den folgenden Code-Fragment , ein CLOB -Objekt , in dem "RS" ist ein ResultSet -Objekt zu erstellen :
Clob clob = rs.getClob (1);
die Variable " clob " ist jetzt eine funktionelle Bediener auf der CLOB -Wert in der ersten Spalte der Ergebnismenge gespeichert " rs . "
2
Geben Sie den folgenden Code , um Ihre Datenbank zu zwei laufen identisch CLOB -Werte in einer neuen Tabelle , die in der Lage ist , die 500 Kilobyte redundante Textdaten sind:
import java.sql * ;
public class PutGetClobs {
Öffentlichkeit. static void main ( String [] args)
wirft SQLException
{
//Registrieren des nativen JDBC-Treiber.
try {
< p> Class.forName ( " COM.ibm.db2.jdbc.app.DB2Driver "); }
catch (Exception e) {
System.exit (1); //Setup . error
}
//Stellen Sie eine Verbindung und Statement , mit dem gearbeitet
Anschluss c = DriverManager.getConnection ( " jdbc: db2 : * local" ) .
Statement s = c.createStatement ();
//Clean up alle bisherigen Lauf dieser Anwendung
try {
s.executeUpdate ( . "DROP tABLE CUJOSQL.CLOBTABLE ");
} catch ( SQLException e) {
//ignorieren Sie es - übernehmen die Tabelle nicht existiert
}
.
//erstellen Sie eine Tabelle mit CLOB Spalte. Der Standardwert CLOB Spalte
//ist 1 MB
s.executeUpdate ( "CREATE TABLE CUJOSQL.CLOBTABLE ( COL1 CLOB )"); .
//Erstellen einer PreparedStatement-Objekt , mit dem Sie
//eine neue Clob Objekt in die Datenbank gestellt erlauben
PreparedStatement ps = c.prepareStatement ( "INSERT INTO CUJOSQL.CLOBTABLE VALUES (?) "); .
//Erstelle einen großen Wert CLOB ...
StringBuffer buffer = new StringBuffer ( 500000 );
while ( buffer.Length () < 500000 ) {
buffer.append ( "Alle Arbeit und kein Spiel macht Cujo einen stumpfen Jungen . "); }
String clobValue = buffer.toString ();
< p > //die PreparedStatement Parameter einzustellen. Dies ist nicht
//portable allen JDBC-Treiber . JDBC-Treiber müssen nicht
//bis setBytes für CLOB Spalten unterstützt . Dies wird
getan //können Sie neue CLOBs erzeugen . Außerdem
//JDBC 1.0 -Treiber ermöglicht einen Weg, um mit Spalten mit
//Clob Daten arbeiten
ps.setString (1, clobValue ); .
//Prozess die Aussage , indem er das clob in die Datenbank
ps.executeUpdate (); .
//Prozess eine Abfrage und erhalten Sie die CLOB , dass gerade aus der eingefügte
//Datenbank als Objekt Clob
ResultSet rs = s.executeQuery ( "SELECT * FROM CUJOSQL.CLOBTABLE "); .
rs.next ();
Clob clob = rs.getClob (1);
//Put dass Clob wieder in die Datenbank durch
//der PreparedStatement
ps . . setClob (1, clob );
ps.execute ();
c.close (); //Verbindung schließen schließt auch stmt und rs
}
}
3
Fügen Sie den folgenden Code auf Ihre Datenbank , um das Verhalten Ihres CLOB Objekte zu ändern : .
import java.sql * ;
public class UpdateClobs {
public static void main ( String [] args)
wirft SQLException
{
//Registrieren des nativen JDBC Fahrer
try {
Class.forName ( " COM.ibm.db2.jdbc.app.DB2Driver "); }
. catch (Exception e) {
System.exit (1); //Setup Fehler
}
Anschluss c = DriverManager.getConnection ( " jdbc: db2 : * local" ); .
< 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);
//Kürzt ein . CLOB
clob1.truncate ( (lang) 150000 );
System.out.println (" Clob1 neue Länge ist " + clob1.length ());
//Update einen Teil des CLOB mit einem neuen String-Wert
String value = " Einige neue Daten für einmal "; .
int charsWritten = clob2.setString ( 500L , value) ;
System.out.println ( "Zeichen geschrieben ist " + charsWritten );
//Die Bytes können an Position 500 in clob2
lange startInClob2 gefunden werden = clob2.position (Wert , 1);
System.out.println (" Muster gefunden beginnend bei der Position " + startInClob2 );
c.close (); //Verbindung schließen schließt auch stmt und rs .
} }
4
Wenden Sie den folgenden Code, um CLOB in Ihrer Datenbank ausführen . CLOB wird von selbst nach der Wahrnehmung seiner Aufgaben unten aufgeführten schließen
import java.sql * ; . .
Public class UseClobs {
public static void main (String [] args )
wirft SQLException
{
//Registrieren des nativen JDBC-Treiber.
try {
Class.forName ( " com . ibm.db2.jdbc.app.DB2Driver "); }
catch (Exception e) {
System.exit (1); . //Setup Fehler
}
Anschluss c = DriverManager.getConnection ( " jdbc: db2 : * local" );
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);
//Bestimmen Sie die Länge einer LOB
langen Ende = clob1.length (); .
System.out.println (" Clob1 Länge " + clob1.length ());
//Beim Arbeiten mit LOBs , alle Indizierung , die ihnen
/verwandt ist /ist 1-basiert , und nicht wie Strings und Arrays 0 - basierend
lange startingPoint = 450 ; .
lange endingPoint = 50;
//Erhalten Teil des CLOB als Byte-Array
String outString = clob1.getSubString ( Ausgangspunkt , (int) endingPoint ); .
System.out.println (" Clob Teilstring " + outString );
//Finden Sie eine Unter - oder CLOB Zeichenkette wird zuerst in einem
//CLOB gefunden. Das Setup für dieses Programm platziert zwei identische Kopien von Madame
//a Wiederholung CLOB in die Datenbank. Somit kann die Startposition des
//String aus clob1 extrahiert in der Startelf
//Position in clob2 gefunden werden, wenn die Suche beginnt in der Nähe der Stelle, wo
< p > //der String beginnt
lange startInClob2 = clob2.position ( outString , 440) ; .
System.out.println (" Muster gefunden beginnend bei der Position " + startInClob2 );
c.close (); //Verbindung schließen schließt auch stmt und rs
} }
.