用Java实现磁盘文件以大对象二进制文件形式存储到Oracle数据库

本文介绍了一种使用 Java 对数据库中的 BLOB 类型字段进行插入、读取和更新的方法。通过 PreparedStatement 和 ResultSet 对象实现了对 Blob 数据的有效管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BLOB blob = null; 
PreparedStatement pstmt = conn.prepareStatement("insert into javatest(name,context) values(?,empty_blob())"); 
            pstmt.setString(1,""+list.get(i).toString()+""); 
            pstmt.executeUpdate(); 
            pstmt.close(); 

            pstmt = conn.prepareStatement("select context from javatest where name= ? for update"); 
            pstmt.setString(1,""+list.get(i).toString()+""); 
            ResultSet rset = pstmt.executeQuery(); 
            if (rset.next()) blob = (BLOB) rset.getBlob(1); 

            pstmt = conn.prepareStatement("update javatest set context=? where name=?"); 

            OutputStream out = 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,""+list.get(i).toString()+""); 
            pstmt.executeUpdate(); 
            
            pstmt.close(); 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值