caoyinghui 发表于 2013-1-15 02:47:00

如何将图片插入数据库

如何将图片,Mp3 ,或是一些二进制类型的数据插入到sqlserver,或是 Oracle 数据库 . 方法是通过流进行操作.
创建一张测试表(sqlserver2000)
 
create table (    identity (1, 1) not null ,    not null ) on textimage_on go 
 
1,插入数据库的方法(sqlserver2000)
this.getConnection() 为获得连接的方法.
 
public void insertPic(String path)...{      Connection con = this.getConnection();      String sql = "insert into picTable values(?)" ;      try ...{            PreparedStatement pstm = con.prepareStatement(sql);            InputStream is = new FileInputStream(path);                        pstm.setBinaryStream(1, is, is.available());            int count = pstm.executeUpdate();            if(count>0)...{                System.out.println("插入成功");            }else...{                System.out.println("插入失败");            }            is.close();            pstm.close();            con.close();                  } catch (Exception e) ...{            e.printStackTrace();      }    } 2,从数据库中读出来的方法.(sqlserver2000)
 
public void readPic(int id)...{      Connection con = this.getConnection();      String sql = "select* frompicTable where id=?" ;      try ...{            PreparedStatement pstm = con.prepareStatement(sql);            pstm.setInt(1, id);            ResultSet rs = pstm.executeQuery();            rs.next();            InputStream is = rs.getBinaryStream(2);                        OutputStream os = new FileOutputStream("f:/temp.jpg");            byte[] buff = new byte;            int len = is.read(buff);            while( len !=-1 )...{                os.write(buff);                len = is.read(buff);            }            System.out.println("写入成功");            is.close();            os.close();            pstm.close();            con.close();      } catch (Exception e) ...{            e.printStackTrace();      }    } 
 
3,插入数据库的方法(Oracle)
 
public void insertBinary() {      Connection con = MyConnection.getORACLEConnection();      String sql = "insert into testBinary values(?,?)";      try ...{            con.setAutoCommit(false);            PreparedStatement pstm = con.prepareStatement(sql);            pstm.setString(1, "a1");            pstm.setBlob(2, oracle.sql.BLOB.empty_lob());            int count = pstm.executeUpdate();            pstm.close();            pstm = con.prepareStatement("select* from testBinary where id=?");            pstm.setString(1, "a1");            ResultSet rs = pstm.executeQuery();            rs.next();            oracle.sql.BLOB blob = (BLOB) rs.getBlob(2);            OutputStream os = blob.getBinaryOutputStream();            FileInputStream fi = new FileInputStream("E:\test.mp3");            byte[] buff = new byte;            int len = fi.read(buff);            while (len != -1) ...{                os.write(buff);                len = fi.read(buff);            }            pstm = con.prepareStatement(sql);            pstm.setString(1, "a1");            pstm.setBlob(2, blob);            int res = pstm.executeUpdate();            con.commit();            pstm.close();            con.close();            if (res > 0) ...{                System.out.println("success");            }      } catch (Exception ex) ...{            ex.printStackTrace();      }    } 
4,从数据库中读出来的方法.(Oracle)
public void readerBinaryStream() {      Connection con = MyConnection.getORACLEConnection();      try ...{            java.sql.PreparedStatement pstm = con.prepareStatement(                  "select * from testBinary where id='a1'");            ResultSet rs = pstm.executeQuery();            rs.next();            oracle.sql.BLOB blob = (BLOB) rs.getBlob(2);            InputStream is = blob.getBinaryStream();            FileOutputStream fi = new FileOutputStream("f:\aaaa.mp3");            byte[] buff = new byte;            int len = is.read(buff);            while (len != -1) ...{                fi.write(buff);                len = is.read(buff);            }            fi.close();      } catch (SQLException ex) ...{      } catch (FileNotFoundException ex) ...{          ex.printStackTrace();      } catch (IOException ex) ...{            ex.printStackTrace();      }    }本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caoyinghui1986/archive/2008/04/05/2252772.aspx 
 
页: [1]
查看完整版本: 如何将图片插入数据库