MysqL Blob 实例代码

public  class  TestBlob {
        //写入Blob
        @Test
        public  void  WriteBlob(){
            Connection conn =  null ;
            PreparedStatement ps =  null ;
            
              try  {
                  conn = JDBCUtil. getConnection();
                  
                  String sql =  "insert into picture (picture) values(?)" ;
                  
                  ps = conn.prepareStatement(sql);
                    //用BLOB数据库中插入图片
                  File file =  new  File( "D:/20150720.jpeg"  );
                  InputStream in =  new  FileInputStream(file);
                    //用二进制形式插入
                  ps.setBinaryStream(1, in,(  int )file.length());
                  ps.executeUpdate();
                  
            }  catch  (Exception e) {
                    //  TODO  Auto-generated catch block
                  e.printStackTrace();
            }  finally {
                  JDBCUtil. freeAll(conn,  null , ps);
            }
      }

        //读取blob
        @Test
        public  void  readBlob(){
            Connection conn =  null ;
            PreparedStatement ps=  null ;
            ResultSet rs=  null ;
            
              try  {
                  conn = JDBCUtil. getConnection();
                  String sql =  "select * from picture where id = 2"  ;
                  ps= conn.prepareStatement(sql);
                  rs= ps.executeQuery();
                    while (rs.next()){
                          int  id = rs.getInt(1);
                        System.  out .println(id+ "--"  );
                        Blob pic= rs.getBlob(2);
                        InputStream in = pic.getBinaryStream();
                        OutputStream out =  new  FileOutputStream( "E:/20150720.jpg"  );
                          byte [] buffer =  new  byte [1024];
                          int  hashred = 0;
                        
                          while ((hashred = in.read(buffer)) != -1){
                              out.write(buffer,0,hashred);
                        }
                        in.close();
                        out.close();
                  }
            }  catch  (SQLException e) {
                    //  TODO  Auto-generated catch block
                  e.printStackTrace();
            }  catch  (FileNotFoundException e) {
                    //  TODO  Auto-generated catch block
                  e.printStackTrace();
            }  catch  (IOException e) {
                    //  TODO  Auto-generated catch block
                  e.printStackTrace();
            }  finally {
                  JDBCUtil. freeAll(conn, rs, ps);
            }
      }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值