java中插入图片到oracle中

package com.qhit;

import java.sql.*;

public class OracleConn {

 /**   * @param args   */  public static void main(String[] args) {

//设置连接url   String url = "jdbc:oracle:thin:@localhost:1521:xmrc";

//用户名   String user = "scott";

//密码   String password="tiger";

  Connection conn = null;   java.sql.Statement st = null;   java.sql.PreparedStatement pst = null;   java.sql.ResultSet rs = null;   try{

//实例化oracle驱动,注意要把驱动包导入进来,驱动包在oracle中可以找到,或者到网上下都可以    new oracle.jdbc.driver.OracleDriver();

//使用驱动管理器和url,用户名,密码,连接数据库得到连接conn    conn = java.sql.DriverManager.getConnection(url, user, password);    //取消自动提交,默认的时候都是自动提交的    conn.setAutoCommit(false);    st = conn.createStatement();        //测试数据库的连接有没有成功    /*String sql = "select * from emp";        rs = st.executeQuery(sql);    while(rs.next()){     int c = rs.getMetaData().getColumnCount();     for(int i=0;i<c;i++){      System.out.print(rs.getString(i+1) + "--------");     }     System.out.println();    }*/        //插入图片到数据库    /*    String sql = "insert into image_tab(id,image) values(1,empty_blob())";    st = conn.createStatement();        st.executeUpdate(sql);        String sql = "select image from image_tab where id = 1 for update";    rs = st.executeQuery(sql);

   if(rs.next()){     oracle.sql.BLOB b = (oracle.sql.BLOB)rs.getBlob(1);     java.io.OutputStream os = b.getBinaryOutputStream();       java.io.InputStream is = new java.io.FileInputStream("D://样品.jpg");     int i = 0;     while((i = is.read()) != -1){      os.write(i);     }     is.close();     os.close();    }*/        //从数据库里检索出图片    String sql = "select image from image_tab where id=1";    rs = st.executeQuery(sql);    if(rs.next()){     oracle.sql.BLOB b = (oracle.sql.BLOB)rs.getBlob(1);     java.io.InputStream is = b.getBinaryStream();          java.io.FileOutputStream fos = new java.io.FileOutputStream("E://test.jpg");     int i = 0;          while((i = is.read())!= -1){      fos.write(i);     }     fos.close();     is.close();    }    conn.commit();   }catch(Exception e){    try{     conn.rollback();    }catch(Exception e1){     e1.printStackTrace();    }    e.printStackTrace();   }finally{    try{     if(rs != null)rs.close();     if(st != null)st.close();     if(pst != null)pst.close();     if(conn != null)conn.close();    }catch(Exception e){     e.printStackTrace();    }   }   

 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值