Java如何将CLOB数据存储到数据库中?
package org.nhooo.example.jdbc;
import java.io.File;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class ClobInsertDemo {
private static final String URL = "jdbc:mysql://localhost/nhooo";
private static final String USERNAME = "root";
private static final String PASSWORD = "";
public static void main(String[] args) {
try (Connection conn =
DriverManager.getConnection(URL, USERNAME, PASSWORD)) {
conn.setAutoCommit(false);
String sql = "INSERT INTO book_excerpts " +
"(book_isbn, description, data) VALUES (?, ?, ?)";
File data = new File("java-8-in-action.txt");
try (PreparedStatement stmt = conn.prepareStatement(sql);
FileReader reader = new FileReader(data)) {
stmt.setString(1, "9781617291999");
stmt.setString(2, "Java 8 in Action");
stmt.setCharacterStream(3, reader, (int) data.length());
stmt.execute();
conn.commit();
} catch (Exception e) {
conn.rollback();
e.printStackTrace();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}book_excerpts表的结构。
CREATE TABLE `book_excerpts` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `book_isbn` varchar(50) NOT NULL, `description` varchar(255) NOT NULL, `data` longtext, PRIMARY KEY (`id`), KEY `book_isbn` (`book_isbn`), CONSTRAINT `book_excerpts_ibfk_1` FOREIGN KEY (`book_isbn`) REFERENCES `books` (`isbn`) ) ENGINE=InnoDB;
Maven依赖
<!-- https://search.maven.org/remotecontent?filepath=mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17.jar -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>