2.4.3 存取BLOB字段值
优质
小牛编辑
133浏览
2023-12-01
许多数据库都支持二进制字段,对这类字段的处理相对繁琐一些,在读取时需要使用Statement,而在写入时,必须使用PreparedStatement对象的setBinaryStream方法。下面程序演示了如何向BLOB类型字段中写入数据,代码如下:
public class BlobView
{
public static void main(String[] args) throws Exception
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost/mydb?characterEncoding=UTF8","root", "1234");
// 打开D盘上的image.jpg文件
java.io.File picFile = new java.io.File("d:\\image.jpg");
// 获得该图像文件的大小
int fileLen = (int) picFile.length();
// 获得这个图像文件的InputStream对象
java.io.InputStream is = new java.io.FileInputStream(picFile);
// 获得PreparedStatement对象
PreparedStatement pstmt = conn
.prepareStatement("INSERT INTO t_image(name, image) VALUES(?, ?)");
pstmt.setString(1, "mypic"); // 为第一个参数设置参数值
pstmt.setBinaryStream(2, is, fileLen); // 为第二个参数设置参数值
pstmt.executeUpdate(); // 更新数据库
pstmt.close();
conn.close();
}
}