• 二进制读取 jdbc


    package com.itheima.clob.test;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    import org.junit.Test;
    
    import com.itheima.utils.JdbcUtil;
    
    /**
     * 大二进制数据读写(图片,电影,音乐,字节码文件)  Mysq: blob  longblob
     * @author wangli
     *
     *
     use day16;
     create table testblob(
         id int primary key,
         content longblob
     );
     *
     */
    public class BlobTest02 {
        //写一个图片到数据表中   测试时显示记录,注意  select id from testblob;
        @Test
        public void testAddBlob(){
            Connection con = null;
            PreparedStatement st =null;
            
            try {
                con = JdbcUtil.getConnection();
                String sql="insert into testblob values(?,?)";
                st = con.prepareStatement(sql);
                
                //赋值
                st.setInt(1, 1);
                InputStream is = new FileInputStream("src/1.jpg");//找到src下的文件1.jpg
                st.setBinaryStream(2, is, is.available());
                st.executeUpdate();
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
                JdbcUtil.release(null, st, con);
            }
        }
        
        @Test  //读取一个图片
        public void testReaderblob(){
            Connection con = null;
            PreparedStatement st =null;
            ResultSet rs = null;
            try {
                con = JdbcUtil.getConnection();
                String sql="select * from testblob where id=?";
                st = con.prepareStatement(sql);
                
                //赋值
                st.setInt(1, 1);
                
                //3.读取
                rs = st.executeQuery();
                if(rs.next()){
                    //结果集中有数据
                    InputStream is = rs.getBinaryStream("content");
                    OutputStream os = new FileOutputStream("d:/1.jpg");
                    int len=-1;
                    byte buffer[] = new byte[1024];
                    while((len=is.read(buffer))!=-1){
                        os.write(buffer, 0, len);
                    }
                    os.close();
                    is.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
                JdbcUtil.release(null, st, con);
            }
        }
    }
  • 相关阅读:
    C# 枚举、字符串、值的相互转换
    What's New in v2010 vol 2.5
    Using Oracle's Parallel Execution Features
    [zhuan]asp.net程序性能优化的七个方面 (c#(或vb.net)程序改进)
    ORACLE常用网址
    html中的块元素(block element)和内联元素(inline element)
    软件构架师的特点
    窗体信息处理函数讲解
    [xue]软件项目经理所必需具备的素质
    Gulp系列文章入门Gulp
  • 原文地址:https://www.cnblogs.com/baijin05/p/5072927.html
Copyright © 2020-2023  润新知