Hvordan bruke CLOB i Java

Hvordan bruke CLOB i Java


Nå kan du fullføre en rekke oppgaver gjennom Java Database Connectivity (JDBC) Application Programming Interface (API) med database CLOB kolonner. CLOB, som står for "Character stort objekt," er et dataverktøy som brukes til å lagre og hente store mengder tekst data i karakter format. En CLOB kan lagre opptil 128 terabyte med tegndata i databasen. Sin full kompatibilitet med Java gjør det til et foretrukket valg av mange programvareutviklere.

Bruksanvisning

1 Bruk følgende kode fragment å skape en CLOB objekt, hvor "rs" er et ResultSet objekt:

Clob clob = rs.getClob (1);

Variabelen "clob" er nå en funksjonell operatør på clob verdien som er lagret i den første kolonnen i resultatsettet "rs".

2 Tast inn følgende kode i databasen for å kjøre to identiske CLOB verdier i en ny tabell, som er i stand til å inneholde 500 kilobyte av overflødig tekst data:

importere java.sql. *;

public class PutGetClobs {

public static void main (String [] args)

kaster SQLException

{

// Register the native JDBC driver.

try {

Class.forName ( «com.ibm.db2.jdbc.app.DB2Driver");

} Catch (Exception e) {

System.exit (1); // Oppsett feil.

}

// Etablere en forbindelse og erklæringen som å arbeide.

Tilkobling c = DriverManager.getConnection ( "jdbc: db2: * lokale");

Uttalelse s = c.createStatement ();

// Rydd opp noen tidligere kjøring av dette programmet.

try {

s.executeUpdate ( "DROP TABLE CUJOSQL.CLOBTABLE");

} Catch (SQLException e) {

// Ignorer det - antar 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)");

// Opprett en PreparedStatement objekt som lar deg sette

// En ny Clob objekt i databasen.

PreparedStatement ps = c.prepareStatement ( "INSERT INTO CUJOSQL.CLOBTABLE VERDIER ()?");

// Opprett en stor clob verdi ...

Stringbuffer buffer = new Stringbuffer (500 000);

while (buffer.length () & lt; 500000) {

buffer.append ( "Alt arbeid og ingen play gjør Cujo en kjedelig gutt.");

}

String clobValue = buffer.toString ();

// Sett PreparedStatement parameter. Dette ikke er

// Bærbare til alle JDBC drivere. JDBC drivere ikke har

// For å støtte setBytes for CLOB kolonner. Dette gjøres for å

// Tillate deg å generere nye CLOBs. det er også

// Tillater 1,0 drivere en måte å jobbe med kolonner som inneholder JDBC

// clob data.

ps.setString (1, clobValue);

// Behandle setningen, sette clob inn i databasen.

ps.executeUpdate ();

// Process en spørring og få clob som nettopp ble satt ut av

// Database som en Clob objekt.

ResultSet rs = s.executeQuery ( "SELECT * FROM CUJOSQL.CLOBTABLE");

rs.next ();

Clob clob = rs.getClob (1);

// Sett at Clob tilbake inn 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 til databasen for å endre atferden til CLOB objekter:

importere java.sql. *;

public class UpdateClobs {

public static void main (String [] args)

kaster SQLException

{

// Register the native JDBC driver.

try {

Class.forName ( «com.ibm.db2.jdbc.app.DB2Driver");

} Catch (Exception e) {

System.exit (1); // Oppsett feil.

}

Tilkobling c = DriverManager.getConnection ( "jdbc: db2: * lokale");

Uttalelse 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);

// Avkort en clob.

clob1.truncate ((long) 150 000);

System.out.println ( "Clob1 nye lengden er" + clob1.length ());

// Oppdatere en del av CLOB med en ny String verdi.

String value = "Noen nye data for en gang";

int charsWritten = clob2.setString (500L, verdi);

System.out.println ( "tegn skrevet er" + charsWritten);

// Den byte kan bli funnet i posisjon 500 i clob2

lang startInClob2 = clob2.position (verdi, 1);

System.out.println ( "mønster funnet starter på posisjon" + startInClob2);

c.close (); // Connection nær stenger også stmt og rs.

}

}

4 Bruk følgende kode for å utføre CLOB i databasen. Clob lukkes av seg selv etter å ha utført sine oppgaver listet opp nedenfor.

importere java.sql. *;

public class UseClobs {

public static void main (String [] args)

kaster SQLException

{

// Register the native JDBC driver.

try {

Class.forName ( «com.ibm.db2.jdbc.app.DB2Driver");

} Catch (Exception e) {

System.exit (1); // Oppsett feil.

}

Tilkobling c = DriverManager.getConnection ( "jdbc: db2: * lokale");

Uttalelse 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 av en LOB.

lange enden = clob1.length ();

System.out.println ( "Clob1 lengde er" + clob1.length ());

// Når du arbeider med LOB, all indeksering som er relatert til dem

// Er en basert, og ikke 0-baserte lignende strenger og arrayer.

lang startpunkt = 450;

lang endingPoint = 50;

// Skaff del av CLOB som en byte array.

String outString = clob1.getSubString (startpunkt, (int) endingPoint);

System.out.println ( "Clob treng er" + outString);

// Finn hvor en under CLOB eller strengen er først innenfor et

// Clob. Oppsettet for dette programmet plassert to identiske kopier av

// En gjenta clob inn i databasen. Således startposisjonen til

// Strengen trekkes ut fra clob1 kan bli funnet i start

// Stilling i clob2 hvis søke begynner nær den posisjon der

// Strengen starter.

lang startInClob2 = clob2.position (outString, 440);

System.out.println ( "mønster funnet starter på posisjon" + startInClob2);

c.close (); // Connection nær stenger også stmt og rs.

}

}

Hint

  • Gratis online opplæring er tilgjengelig for Java og clob. Lær så mange som mulig til å bli kjent med disse effektive webteknologier.
  • Påfør koden for å gjøre endringer på CLOB gjenstander og kjøre clob element først etter at du har fullført "PutGetClobs" program på databasen for å holde alle dine data tabeller intakt.