Heim  >  Artikel  >  Java  >  Wie konvertiere ich den CLOB-Typ in Java in einen String?

Wie konvertiere ich den CLOB-Typ in Java in einen String?

王林
王林nach vorne
2023-09-11 18:09:021715Durchsuche

在Java中如何将CLOB类型转换为字符串?

CLOB Steht normalerweise für Character Large Object. SQL Clob ist ein integrierter Datentyp, der zum Speichern großer Textdatenmengen verwendet wird. Mit diesem Datentyp können Sie bis zu 2.147.483.647 Zeichen an Daten speichern.

Die java.sql.Clob-Schnittstelle der JDBC-API repräsentiert den CLOB-Datentyp. Da das Clob-Objekt in JDBC mithilfe von SQL-Locators implementiert wird, enthält es einen logischen Zeiger auf den SQL-CLOB (nicht auf die Daten).

MySQL Die Datenbank unterstützt diesen Datentyp mithilfe von vier Variablen, nämlich TINYTEXT, TEXT, MEDIUMTEXT und LONGTEXT.

Konvertieren Sie den CLOB-Datentyp in einen String.

  • Rufen Sie den Clob-Wert aus der Tabelle mit der Methode getClob() oder getCharacterStream() der Schnittstelle PreparedStatement ab.
Reader r = clob.getCharacterStream();
  • liest jedes Zeichen einzeln aus dem abgerufenen Zeichenstrom und hängt es an einen StringBuilder oder StringBuffer an.
int j = 0;
StringBuffer buffer = new StringBuffer();
int ch;
while ((ch = r.read())!=-1) {
   buffer.append(""+(char)ch);
}
System.out.println(buffer.toString());
j++;
  • Zum Schluss den erhaltenen String anzeigen oder speichern.
System.out.println(buffer.toString());

Beispiel

Lassen Sie uns eine Tabelle mit dem Namen technologies_data in der MySQL-Datenbank erstellen, indem wir die folgende Abfrage verwenden: In der dritten Spalte des

CREATE TABLE Technologies (Name VARCHAR(255), Type VARCHAR(255), Article LONGTEXT);

Tabellenartikels werden Daten vom Typ CLOB gespeichert.

Das folgende JDBC-Programm fügt zunächst 5 Datensätze in eine Artikelspalte (CLOB) in der Technologies_data-Tabelle ein, in der eine Textdatei (deren Inhalt) gespeichert ist.

Dann werden die Datensätze der Tabelle abgerufen und der Name und Inhalt des Artikels angezeigt. Hier versuchen wir, die abgerufenen CLOB-Daten in String zu konvertieren und anzuzeigen.

import java.io.FileReader;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class ClobToString {
   public static void main(String args[]) throws Exception {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampledatabase";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Creating a Statement object
      Statement stmt = con.createStatement();
      //Inserting values
      String query = "INSERT INTO Technologies_data VALUES (?, ?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "JavaFX");
      pstmt.setString(2, "Java Library");
      FileReader reader = new FileReader("E:\images\javafx_contents.txt");
      pstmt.setClob(3, reader);
      pstmt.execute();
      pstmt.setString(1, "CoffeeScript");
      pstmt.setString(2, "Scripting Language");
      reader = new FileReader("E:\images\coffeescript_contents.txt");
      pstmt.setClob(3, reader);
      pstmt.execute();
      pstmt.setString(1, "Cassandra");
      pstmt.setString(2, "NoSQL Database");
      reader = new FileReader("E:\images\cassandra_contents.txt");
      pstmt.setClob(3, reader);
      pstmt.execute();
      //Retrieving the data
      ResultSet rs = stmt.executeQuery("select * from Technologies_data");
      System.out.println("Contents of the table are: ");
      while(rs.next()) {
         System.out.println("Article: "+rs.getString("Name"));
         Clob clob = rs.getClob("Article");
         Reader r = clob.getCharacterStream();
         StringBuffer buffer = new StringBuffer();
         int ch;
         while ((ch = r.read())!=-1) {
            buffer.append(""+(char)ch);
         }
         System.out.println("Contents: "+buffer.toString());
         System.out.println(" ");
      }
   }
}

Ausgabe

Connection established......
Contents of the table are:
Article: JavaFX
Contents: JavaFX is a Java library using which you can develop Rich Internet Applications. By using Java technology, these applications have a browser penetration rate of 76%.
Article: CoffeeScript
Contents: CoffeeScript is a lightweight language based on Ruby and Python which transcompiles (compiles from one source language to another) into JavaScript. It provides better syntax avoiding the quirky parts of JavaScript, still retaining the flexibility and beauty of the language.
Article: Cassandra
Contents: Apache Cassandra is a highly scalable, high-performance distributed database designed to handle large amounts of data across many commodity servers,
providing high availability with no single point of failure. It is a type of NoSQL database. Let us first understand what a NoSQL database does.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich den CLOB-Typ in Java in einen String?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen