How do I query and insert CLOBs data from database?
程序员文章站
2024-03-04 12:31:05
...
Only for reference.
import java.io.File;
import java.io.FileWriter;
import java.io.Reader;
import java.sql.*;
public class TestOperClob {
private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";
private static String username = "test";
private static String password = "test";
public void queryClob(){
Connection conn = null;
try {
conn = getConnection();
String sql = "SELECT name, description, data FROM documents ";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet resultSet = stmt.executeQuery();
while (resultSet.next()) {
String name = resultSet.getString(1);
System.out.println("Name = " + name);
String description = resultSet.getString(2);
System.out.println("Description = " + description);
File data = new File("C:\\The Appfuce Primer.txt");
// Get the character stream of our CLOB data
Reader reader = resultSet.getCharacterStream(3);
FileWriter writer = new FileWriter(data);
char[] buffer = new char[1];
while (reader.read(buffer) > 0) {
writer.write(buffer);
}
writer.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeConnection(conn);
}
}
public void insertClob(){
try{
conn = getConnection();
conn.setAutoCommit(false);
String sql = "INSERT INTO documents (name, description, data) VALUES (?, ?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, "The AppFuse Primer.txt");
stmt.setString(2, "The AppFuse Primer");
File data = new File("C:\\The AppFuse Primer.txt");
reader = new FileReader(data);
stmt.setCharacterStream(3, reader, (int) data.length());
stmt.execute();
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (reader != null) {
reader.close();
}
closeConnection(conn);
}
}
private static Connection getConnection() throws Exception {
Connection connection = null;
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost/bookstore", "root", "");
return connection;
}
private static void closeConnection(Connection connection) throws SQLException {
if (connection != null && !connection.isClosed()) {
connection.close();
}
}
public static void main(String[] args) throws Exception {
queryClob();
insertClob();
}
}