问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java oracle数据blob的操作

发布网友 发布时间:2022-04-08 20:21

我来回答

1个回答

热心网友 时间:2022-04-08 21:51

// 下面为一个完整的例子,如果用framework,需要做一定修改
写入    
public boolean saveWordFile(String filePath) {
        File file = new 
File(filePath);
        Connection conn = getConnection();
        try 
{
            java.sql.Statement st = conn.createStatement();
            
conn.setAutoCommit(false);
            st.execute("insert into table_name 
values(1,empty_blob())");
            ResultSet rs = 
st
                    .executeQuery("select id,word from table_name where 
id=1 for update");
            if (rs.next()) {
                BLOB blob 
= (BLOB) rs.getBlob("word");
                OutputStream outStream = 
blob.getBinaryOutputStream();
                InputStream fin = new 
FileInputStream(file);
                byte[] b = new 
byte[blob.getBufferSize()];
                int len = 0;
                
while ((len = fin.read(b)) != -1) {
                    outStream.write(b, 0, 
len);
                }
                fin.close();
                
outStream.flush();
                outStream.close();
                
conn.commit();
                conn.close();
            }
        } 
catch (SQLException e) {
            // TODO Auto-generated catch 
block
            e.printStackTrace();
        } catch 
(FileNotFoundException e) {
            // TODO Auto-generated catch 
block
            e.printStackTrace();
        } catch (IOException e) 
{
            // TODO Auto-generated catch block
            
e.printStackTrace();
        }
        return true;
    }
读取
   public void getWordFile(String id) {
        Connection conn = 
getConnection();
        java.sql.Statement st;
        try 
{
            st = conn.createStatement();
            ResultSet rs = 
st.executeQuery("select id,word from table_name where 
id='"+id+"'");
            if (rs.next()) {
                BLOB blob = 
(BLOB) rs.getBlob("word");
                File file = new 
File("c://filename.doc");
                FileOutputStream output = new 
FileOutputStream(file);
                InputStream input = 
blob.getBinaryStream();
                byte[] buffer = new 
byte[1024];
                int i = 0;
                while ((i = 
input.read(buffer)) != -1) {
                    output.write(buffer, 0, 
i);
                }
            }
        } catch (Exception e) 
{
            // TODO Auto-generated catch block
            
e.printStackTrace();
        }
   }
修改
public void updateblob(String id){
  Connection 
conn=getConnection();
  Statement stem=null;
  ResultSet rs=null;
  
try{ 
         conn.setAutoCommit(false); 
         
stem=conn.createStatement();
         rs = stem.executeQuery("select word 
from table_name where id='"+id+"' for update"); 
         
         if 
(rs.next()) { 
             BLOB blob = (BLOB) rs.getBlob("word"); 

             OutputStream outStream = blob.getBinaryOutputStream(); 

             InputStream fin = new FileInputStream("c://2.doc"); 

             byte[] b = new byte[blob.getBufferSize()]; 
             int 
len = 0; 
             while ((len = fin.read(b)) != -1) { 

                 outStream.write(b, 0, len); 
             } 

             fin.close(); 
             outStream.flush(); 

             outStream.close(); 
             conn.commit(); 

             conn.close(); 
         } 
} catch (Exception ex){ 

 try {
  conn.rollback();
 } catch (SQLException e) {
  // TODO 
Auto-generated catch block
  e.printStackTrace();
 }
  
System.out.println(ex.getMessage());
}
 }

追问我的是直接表里面读出来又放到另一个表中blob类型的,能直接放吗

追答只能这样处理blob/clob的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
刷宝账号注销个人信息还在吗 ...没声音 我可以听到对方说话 但是对方那里却听不到我的 麦克风... 格美台风的路线 台风格美经过哪里 三号台风格美路线 台风格美北上路线 2.制作底面直径为8厘米,高为10厘米的圆柱形茶叶盒,至少需要多少平方厘 ... 茶叶桶的底面直径为十厘米,高为20厘米吧,这样两个茶叶桶又帮装纸装... ...形,底面直径是10cm,这种包装的茶叶按图中所示的方式装入长方体纸箱... ...底面直径是10cm,高是15cm,将12盒这种包装的茶叶按 肥牛饭怎么做好吃 灭蚊灯有静音的吗? 美味的肥牛饭如何做? 经典的肥牛饭怎么做? 酸汤肥牛饭,制作步骤有哪些? 肥牛饭在电饭锅的做法 韩式肥牛饭是怎么做的? 如何制作吉野家肥牛饭 为什么灭蚊灯对蚊子是无效的 蒙自源肥牛饭的做法。 2步做出吉野家式肥牛饭的常见做法? 肥牛饭的牛肉可以用牛排代替吗 肥牛饭做法 如何选择适合做肥牛饭的肥牛肉 dell 显示器显示正在进行中的调试是怎么回事? s2340m显示器其他设置 lcd调节启用要多长时间才能完事 戴尔DELL19寸液晶显示器怎么调? 请教下:戴尔的液晶显示器如何调节亮度和对比度 可以用二手房当作房贷的首期吗? 戴尔笔记本的对比度调节在那 有人说市面不少灭蚊灯没啥作用,榄菊灭蚊灯效果是不是稍好一点? 华为平板右边有个小圆点是什么 好习惯,好人生 的演讲稿,最好是自己写的,急!!! 好习惯成就好人生备战期中考试500字演讲稿 手机电池怎么换 苹果手机换非原电池怎么把电池容量弄一下 为什么横隔膜疼? 横膈膜疼痛是什么原因 横隔肌受伤症状 我在跑步时,大概横膈膜那里会痛 运动后横隔膜位置疼痛 右胸部靠近横膈膜处疼痛 请问横膈膜(或说膈肌)都有哪些疾病?大便太用力时会不会使横膈膜受损? 唱歌时横隔膜痛怎么回事? 横隔膜疼与胃疼的区别 医学问题,高分求解,本人胸前横膈膜痛,自己摸下又是心窝子右边下去点点痛. 女朋友横隔膜疼怎么安慰? 胸大会导致横膈膜疼痛吗? 横膈膜是什么? 中国古代诗歌发展简史 杜晓勤