存储和读取一个MP3文件于MySQL中

来源:互联网 发布:讨厌的人 知乎 编辑:程序博客网 时间:2024/04/28 21:56
package cn.jxk.demo4;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.sql.Blob;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import javax.sql.rowset.serial.SerialBlob;import org.apache.commons.io.IOUtils;import org.junit.Test;import cn.jxk.demo3.JdbcUtils;/* * 大数据 * */public class Demo4 {    /*     * 把MP3保存到数据库中     * */    @Test    public void fun1() throws Exception{        /*         * 一、得到Connection         * 二、给出sql模板,创建pstmt         * 三、设置sql模板中的参数         * 四、调用pstmt的executeUpdate()执行         * */            Connection con=JdbcUtils.getConnection();            String sql="insert into tab_bin values(?,?,?)";            PreparedStatement pstmt=con.prepareStatement(sql);            pstmt.setInt(1,1);            pstmt.setString(2, "薛之谦 - 刚刚好.mp3");        /*         * 得到Blob         * 1.我们有的是文件,目标是Blob         * 2.先把文件变成byte[]         * 3.再使用byte[]创建Blob         * */            //把文件转换成byte[]            byte[] bytes=IOUtils.toByteArray(new FileInputStream("D:/jxk/薛之谦 - 刚刚好.mp3"));            //使用字节数组类型byte[]创建 Blob            Blob blob=new SerialBlob(bytes);            pstmt.setBlob(3, blob);            pstmt.executeUpdate();    }    /*     * 从数据路中读取MP3     * */    @Test    public void fun2() throws Exception{        /*         * 1.创建Connection         * */        Connection con=JdbcUtils.getConnection();        /*         * 2.给出sql模板,创建pstmt         * */        String sql="select * from tab_bin";        PreparedStatement pstmt=con.prepareStatement(sql);        /*         * 3.pstmp执行查询,得到ResultSet         * */        ResultSet rs=pstmt.executeQuery();        /*         * 4.获取rs列中名为data的数据         * */        if(rs.next()){            Blob blob=rs.getBlob("data");            /*             * 把Blob变为磁盘上的文件             * */            /*             * 1.通过Blob得到输入流对象             * 2.自己创建输出流对象             * 3.把输入流对象写入到输出流中             * */            InputStream in =blob.getBinaryStream();            OutputStream out=new FileOutputStream("D:/蒋晓凯/刚刚好.mp3");            IOUtils.copy(in, out);           }    }}
0 0
原创粉丝点击