MysqL Blob 实例代码

来源:互联网 发布:linux cpuinfo 编辑:程序博客网 时间:2024/06/13 05:45
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);
            }
      }
}
0 0
原创粉丝点击