ITPub博客

首页 > Linux操作系统 > Linux操作系统 > java写入oracle大字段

java写入oracle大字段

原创 Linux操作系统 作者:junqi0909 时间:2008-08-26 15:14:47 0 删除 编辑
import java.sql.*;
import java.io.*;
import oracle.sql.*;
public class IntoOracle {

    public static void main(String[] args) {

        try {
            DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
            Connection conn = OracleFactory.getOracle();
            conn.setAutoCommit(false);
           
            BLOB blob = null;
           
            PreparedStatement pstmt = conn.prepareStatement("insert into blobtest(id,b) values(?,empty_blob())");
            pstmt.setString(1,"50");
            pstmt.executeUpdate();
            pstmt.close();
           
            pstmt = conn.prepareStatement("select b from blobtest where id= ? for update");
            pstmt.setString(1,"50");
            ResultSet rset = pstmt.executeQuery();
            if (rset.next()) blob = (BLOB) rset.getBlob(1);
       
            String fileName = "d:\\bjx.jpg";
            File f = new File(fileName);
            FileInputStream fin = new FileInputStream(f);
            System.out.println("file size = " + fin.available());
           
            pstmt = conn.prepareStatement("update blobtest set b=? where id=?");
           
            OutputStream ut = blob.getBinaryOutputStream();
           
            int count = -1, total = 0;
            byte[] data = new byte[(int)fin.available()];
            fin.read(data);
            out.write(data);
            /*
             * byte[] data = new byte[blob.getBufferSize()]; 另一种实现方法,节省内存 while ((count =
             * fin.read(data)) != -1) { total += count; out.write(data, 0, count); }
             */
           
            fin.close();
            out.close();
           
            pstmt.setBlob(1,blob);
            pstmt.setString(2,"50");
           
            pstmt.executeUpdate();
            pstmt.close();
       
            conn.commit();
            conn.close();
        } catch (SQLException e) {
            System.err.println(e.getMessage());
            e.printStackTrace();
        } catch (IOException e) {
            System.err.println(e.getMessage());
        } catch (Exception e){
            e.printStackTrace();
        }
    }
}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13724339/viewspace-434706/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2008-08-26

  • 博文量
    1
  • 访问量
    5121