Χρησιμοποιήστε τον παρακάτω κώδικα για να δημιουργήσετε ένα αντικείμενο CLOB , όπου " rs " είναι ένα αντικείμενο ResultSet :
CLOB CLOB = rs.getClob ( 1 ) ?
η μεταβλητή " CLOB " είναι πλέον ένα λειτουργικό φορέα για την αξία CLOB αποθηκεύονται στην πρώτη στήλη του συνόλου των αποτελεσμάτων " rs ". 2
Input τον ακόλουθο κώδικα στη βάση δεδομένων σας για να τρέξει δύο ίδιες τιμές CLOB σε ένα νέο πίνακα , τα οποία είναι ικανά να περιέχουν 500 kilobytes των περιττών δεδομένων κειμένου : .
java.sql εισαγωγής * ?
δημόσια τάξη PutGetClobs {
δημόσιο στατική άκυρη κύρια ( String [ ] args )
ρίχνει SQLException
{
//Δηλώστε το εγγενές πρόγραμμα οδήγησης JDBC .
try {
Class.forName ( " com.ibm.db2.jdbc.app.DB2Driver ")?
} αλιευμάτων ( Εξαίρεση ε ) {
System.exit ( 1 ) ? //Εγκατάσταση . σφάλμα
}
//δημιουργήσετε μια σύνδεση και δήλωση με την οποία να εργαστούν
σύνδεσης c = DriverManager.getConnection ( " jdbc : DB2 : * τοπικό επίπεδο») . ?
Δήλωση
s = c.createStatement ( ) ?
//Καθαρίστε κάθε προηγούμενο τρέξιμο αυτής της εφαρμογής
try {
s.executeUpdate ( . " DROP TABLE CUJOSQL.CLOBTABLE ")?
} αλιευμάτων ( SQLException ε) {
//να αγνοήσετε - υποθέτει ότι ο πίνακας δεν υπήρχε
}
.
//Δημιουργία πίνακα με μια στήλη CLOB . Η προεπιλεγμένη CLOB στήλη
//μέγεθος είναι 1 MB
s.executeUpdate ( " CREATE TABLE CUJOSQL.CLOBTABLE ( COL1 CLOB ) ")? .
//Δημιουργήστε ένα PreparedStatement αντικείμενο που σας επιτρέπουν να βάλετε
//ένα νέο αντικείμενο CLOB στη βάση δεδομένων
PreparedStatement ps = c.prepareStatement ( " INSERT INTO CUJOSQL.CLOBTABLE ΑΞΙΕΣ ( ) ;")? .
//Δημιουργήστε μια μεγάλη αξία CLOB ...
StringBuffer buffer = νέα StringBuffer ( 500000 ) ?
ενώ ( buffer.length ( ) <500000 ) {
buffer.append ( " Όλες οι εργασίες και δεν παιχνιδιού κάνει Cujo ένα θαμπό αγόρι . ")? }
String clobValue = buffer.toString ( ) ?
//Ρυθμίστε την παράμετρο PreparedStatement . Αυτό δεν είναι
//φορητό σε όλους τους οδηγούς JDBC . JDBC οδηγούς δεν έχουν
//να υποστηρίξει setBytes για τις στήλες CLOB . Αυτό γίνεται για να
//σας επιτρέπουν να δημιουργήσετε νέα CLOBs . Επίσης
//επιτρέπει JDBC 1.0 οδηγοί έναν τρόπο να συνεργαστεί με στήλες που περιέχουν δεδομένα
//CLOB
ps.setString ( 1 , clobValue )? .
//Επεξεργαστείτε τη δήλωση , εισάγοντας το CLOB στη βάση δεδομένων
ps.executeUpdate ()? .
//Διαδικασία ένα ερώτημα και να πάρει το CLOB που μόλις εισαχθεί από το
//βάσης δεδομένων ως αντικείμενο CLOB
rs ResultSet = s.executeQuery ( "SELECT * FROM CUJOSQL.CLOBTABLE ")? .
rs.next ( ) ?
CLOB CLOB = rs.getClob ( 1 ) ?
//Βάλτε ότι CLOB πίσω στη βάση δεδομένων μέσω
//η PreparedStatement
ps . . setClob ( 1 , CLOB ) ?
ps.execute ( ) ?
c.close ( ) ? . //Η σύνδεση κλείνει κοντά επίσης Stmt και rs
}
}
εικόνων 3
Εισάγετε τον παρακάτω κωδικό στη βάση δεδομένων σας για να αλλάξετε τη συμπεριφορά του CLOB σας αντικείμενα: .
java.sql εισαγωγής * ?
UpdateClobs
δημόσια τάξη {
δημόσια στατική άκυρη κύρια ( String [ ] args )
ρίχνει SQLException
{
//Εγγραφή το φυσικό JDBC . οδηγός
try {
Class.forName ( " com.ibm.db2.jdbc.app.DB2Driver ")?
} αλιευμάτων ( Εξαίρεση ε ) {
System.exit ( 1 ) ? //σφάλμα εγκατάστασης
}
σύνδεσης c = DriverManager.getConnection . ( " jdbc : DB2 : * τοπικό επίπεδο») ?
Δήλωση s = c.createStatement ( ) ?
rs ResultSet = s.executeQuery ( "SELECT * FROM CUJOSQL.CLOBTABLE " ) ?
rs.next ( ) ?
CLOB clob1 = rs.getClob ( 1 ) ?
rs.next ( ) ?
CLOB clob2 = rs.getClob ( 1 ) ?
//Περικοπή a . CLOB
clob1.truncate ( (long ) 150000 ) ?
System.out.println ( " νέο μήκος Clob1 είναι " + clob1.length ( ) ) ?
//Ενημέρωση ενός τμήματος του CLOB με νέα τιμή String αξία
String = " Μερικά νέα στοιχεία για μια φορά "? .
int charsWritten = clob2.setString ( 500L , αξία ) ?
System.out.println ( " Χαρακτήρες που γράφηκαν είναι " + charsWritten ) ?
//Η bytes μπορεί να βρεθεί στη θέση 500 σε clob2
καιρό startInClob2 = clob2.position ( αξία , 1 ) ?
System.out.println ( " μοτίβο που βρέθηκαν ξεκινώντας στη θέση " + startInClob2 ) ?
c.close ( ) ? //Σύνδεση κλείνει κοντά επίσης Stmt και rs .
} }
Η 4
Εφαρμόστε τον παρακάτω κώδικα για να εκτελέσει CLOB στη βάση δεδομένων σας . CLOB θα κλείσει από μόνη της μετά την εκτέλεση των καθηκόντων της που αναφέρονται παρακάτω
java.sql εισαγωγής * ? . .
Δημόσια τάξη UseClobs {
δημόσια στατική άκυρη κύρια ( String [ ] args )
ρίχνει SQLException
{
//Δηλώστε το εγγενές πρόγραμμα οδήγησης JDBC .
try {
Class.forName ( « com . ibm.db2.jdbc.app.DB2Driver ")?
} αλιευμάτων ( Εξαίρεση ε ) {
System.exit ( 1 ) ? //σφάλμα εγκατάστασης
. }
σύνδεσης c = DriverManager.getConnection ( " jdbc : DB2 : * τοπικό επίπεδο») ?
Δήλωση s = c.createStatement ( ) ?
rs ResultSet = s . executeQuery ( "SELECT * FROM CUJOSQL.CLOBTABLE ")?
rs.next ( ) ?
CLOB clob1 = rs.getClob ( 1 ) ?
rs.next ( ) ?
CLOB clob2 = rs.getClob ( 1 ) ?
//Προσδιορίστε το μήκος ενός LOB
μακρύ άκρο = clob1.length ( ) ? .
System.out.println ( " Clob1 μήκος είναι " + clob1.length ( ) ) ?
//Όταν εργάζεστε με LOBs , όλα ευρετηρίαση που σχετίζεται με τους
//είναι 1 - βάση , και όχι 0 - με βάση , όπως strings και arrays
καιρό startingPoint = 450 ? .
καιρό endingPoint = 50 ?
//Αποκτήστε μέρος της CLOB ως έναν πίνακα byte
String outString = clob1.getSubString ( startingPoint , ( int) endingPoint ) ? .
System.out.println ( " CLOB substring είναι " + outString ) ?
//Βρείτε όπου υπο - CLOB ή σπάγκο για πρώτη φορά βρέθηκε σε ένα
//CLOB . Η εγκατάσταση αυτού του προγράμματος τοποθετούνται δύο πανομοιότυπα αντίγραφα του
//μια επανάληψη CLOB στη βάση δεδομένων . Έτσι , η αρχική θέση του
//string που εξάγεται από clob1 μπορεί να βρεθεί στην αρχική
//θέση σε clob2 αν η αναζήτηση αρχίζει κοντά στη θέση όπου
//το string αρχίζει
καιρό startInClob2 = clob2.position ( outString , 440 ) ? .
System.out.println ( " μοτίβο που βρέθηκαν ξεκινώντας στη θέση " + startInClob2 ) ?
c.close ( ) ? //στενή σύνδεση κλείνει και Stmt και rs
} }
Η
εικόνων .
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα