如何将图片保存到Oracle数据库中

在开发的时候很多地方使用到将图片保存到数据库(Oracle)中,使用的时候直接从数据库中提取出来,避免因为保存路径的问题而找不到图片。

//声明需要用到的封装类

Connection conn=null;

Statement st=null;

ResultSet rs=null;

OutputStream  output=null;

BufferedOutputStream outputStream=null;

BufferedInputStream    inputStream=null;

try{

String url="jdbc\:oracle\:thin\:@localhost\:1521\:orcl";  //连接URL
String username="socct";  //用户名
String password="tiger";    //密码

Class.forName("oracle.jdbc.driver.OracleDriver");   //加载Oracle驱动
conn = DriverManager.getConnection(url,username, password);  //得到连接池

File  file=new File(filePath);

//将数据库中的Blob类型给一个默认值为 EMPTY_BLOB()  避免在执行sql语句时,得到的是空值

String sql ="select  image from img_table  where id= 1 for update";

st=conn.createStatement();

rs=st.executequery(sql);  //执行sql语句

if(rs.next()){

    oracle.sql.BLOB blob=(oracle.sql.BLOB)rs.getBlob("image");

    output=blob.getBinaryOutputStream();

    output = new BufferedOutputStream(outstream);
    input = new BufferedInputStream(file.toURL().openStream());

    byte[] buff = new byte[2048];     //用做文件写入的缓冲
    int write; 
       while(-1!=(write= input.read(buff,0,buff.length))){
         output.write(buff,0,write);
     }

 }

 }catch(Exception e){

    e.printStackTrace();

}finally{

   st.close();
   rs.close();
   outstream.close();
   output.close();
   input.close();
   conn.close();

}

相关推荐