Maison >base de données >tutoriel mysql >Écrire un exemple JDBC pour insérer une valeur de type de données Clob dans une table ?
Supposons que nous ayons déjà une table nommée MyData dans la base de données, qui est décrite ci-dessous.
+---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | Article | longtext | YES | | NULL | | +---------+--------------+------+-----+---------+-------+
Si vous devez insérer une valeur int dans un type de données clob à l'aide d'un programme JDBC, vous devez utiliser une méthode qui lit le contenu du fichier et le définit comme ligne de base de données. L'interface ReadyStatement fournit de telles méthodes. La méthode
void setCharacterStream(int parameterIndex, Reader reader) définit le contenu de l'objet lecteur à la valeur du paramètre à l'index donné. Les autres variations de cette méthode sont:
void setCharAttersTream (intparameterIndex, lecteur lecteur, longueur int)
Void setCharAtteTtream (intparameterIndex, lecteur de lecteur, longue longueur)
Void setClob (intparameterIndex, CloB x) La méthode définit l'objet java .sql.Clob donné comme valeur du paramètre à l'index donné. D'autres variantes de cette méthode sont :
void setClob(intparameterIndex, Reader reader)
void setClob (intparameterIndex, Reader reader, long length)
Vous pouvez utiliser l'une de ces deux méthodes pour La valeur est défini sur le type de données Clob.
L'exemple suivant utilise la méthode setClob() pour définir une valeur pour le type de données Clob.
import java.io.FileReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; public class InsertingValueInClob { 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/sampleDB"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("Connection established......"); //Inserting values String query = "INSERT INTO MyData(Name, Article ) VALUES (?, ?)"; PreparedStatement pstmt = con.prepareStatement(query); pstmt.setString(1, "JavaFX"); FileReader reader = new FileReader("E:\images\javafx.txt"); pstmt.setClob(2, reader); pstmt.execute(); System.out.println("Data inserted"); } }
Connection established...... Table Created...... Contents of the table are: JavaFX E:\images\MyData_clob_output1.txt
Si vous essayez d'utiliser MySQL Workbench pour afficher la valeur clob dans l'enregistrement, vous pouvez voir les données texte insérées comme ceci :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!