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();
    }
}