Blob类型数据的读写

Blob类型数据的读写

IO流知识

setBlob

getBinaryStream

import com.miyon.jdbc.JDBCUtils;
import org.junit.Test;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.*;

/**
 * 演示Blob类型数据的存取
 *
 *
 */
public class TestBlob {
    //存图片
    @Test
    public void testSave() throws Exception {
        //1.创建连接
        Connection connection = JDBCUtils.getConnection();

        //2.执行修改
        PreparedStatement statement = connection.prepareStatement("UPDATE BEAUTY SET photo=? WHERE id=1");
        statement.setBlob(1,new FileInputStream("src\\liuyan.png"));
        int update = statement.executeUpdate();

        //3.关闭连接
        JDBCUtils.close(null,statement,connection);

    }


    //读图片
    @Test
        public void testRead() throws Exception {
        //1.创建连接
        Connection connection = JDBCUtils.getConnection();

        //2.执行修改
        PreparedStatement statement = connection.prepareStatement("SELECT photo FROM beauty WHERE id=1");
        ResultSet set = statement.executeQuery();
        if(set.next()){
            //方式1
//            Blob blob = set.getBlob("photo");
//            InputStream binaryStream = blob.getBinaryStream();
            //方式2
            InputStream inputStream = set.getBinaryStream("photo");
//            FileOutputStream fos = new FileOutputStream("f:\\demo");
            FileOutputStream fos = new FileOutputStream("src\\beauty.jpg");

            //IO流知识。
            int len;
            byte [] b = new byte[1024];
            while((len=inputStream.read(b))!=-1){
                fos.write(b,0,len);
            }
            fos.close();
            inputStream.close();

        }

        //3.关闭连接
        JDBCUtils.close(null,statement,connection);

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值