How do I read and insert BLOBs data from database?
程序员文章站
2024-03-04 12:08:35
...
Only for reference.
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.*;
public class TestOperBlob {
private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";
private static String username = "test";
private static String password = "test";
public void queryBlob(){
try{
conn = getConnection();
conn.setAutoCommit(false);
String sql = "INSERT INTO pictures (name, description, image) VALUES (?, ?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, "java.gif");
stmt.setString(2, "Java Official Logo");
File image = new File("D:\\Projects\\kodejava\\web\\images\\java.gif");
fis = new FileInputStream(image);
stmt.setBinaryStream(3, fis, (int) image.length());
stmt.execute();
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeConnection(conn);
}
}
public void insertBlob(){
Connection conn = null;
try {
conn = getConnection();
String sql = "SELECT name, description, image FROM pictures ";
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 image = new File("D:\\java.gif");
FileOutputStream fos = new FileOutputStream(image);
byte[] buffer = new byte[256];
// Get the binary stream of our BLOB data
InputStream is = resultSet.getBinaryStream(3);
while (is.read(buffer) > 0) {
fos.write(buffer);
}
fos.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (fis != null) {
fis.close();
}
closeConnection(conn);
}
}
private static Connection getConnection() throws Exception {
Connection connection = null;
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(url, username, password);
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 {
queryBlob();
insertBlob();
}
}
上一篇: java计算开方