当前位置:  技术问答>java相关

怎么样把BLOB从数据库中取出?(马上给分)

    来源: 互联网  发布时间:2017-04-14

    本文导语:  各位帮帮忙,怎么样吧存在数据库中的PDF文档取出并存放在本地? 还有通知BROWER用什么APPLICATION打开它? 给个实例看看. 分不够再加 先谢谢了! | 我的主要思路是将它先取出来,存到本地某文件中,然后再...

各位帮帮忙,怎么样吧存在数据库中的PDF文档取出并存放在本地?

还有通知BROWER用什么APPLICATION打开它?

给个实例看看.
分不够再加
先谢谢了!

|
我的主要思路是将它先取出来,存到本地某文件中,然后再读到网页上。
具体操作如下:
下为我的一段代码,上个星期刚用上的。
public String getResult() throws Exception
{
    con.setAutoCommit(false);
stmt = con.createStatement();
  
    rs=stmt.executeQuery(sql);

File f=new File("e:\temp.txt");
  
    if(rs.next())
{
Blob blob=rs.getBlob(5);
in =((oracle.sql.BLOB) blob).getBinaryStream();
int bufferSize=(int)((oracle.sql.BLOB) blob).getBufferSize();
out=new BufferedOutputStream(new FileOutputStream(f),bufferSize);
byte[] b=new byte[bufferSize];
int count=in.read(b,0,bufferSize);
while(count!=-1)
{
out.write(b,0,count);
count=in.read(b,0,bufferSize);
}
out.close();
out=null;
in.close();
in=null;
cMessage="写文件完毕!";
}
if(cMessage==null) 
{cMessage="写文件出错!";con.rollback();}
return cMessage;
}
你可以再从文件中读到你需要的地方。或者直接将文件名以参数形式读进来。然后写到文件中


|
Insert a RTF-Document into Database and get it out again:  
Column type is IMAGE:
Example-program: WriteTextToDB.java , DisplayDocumentFromDatabase.java  
http://www.jalice.net/writetexttodb.htm
http://www.jalice.net/DisplayDocumentFromDatabaseOverview.html

|
给你个全的,即存为文件,又回写到客户端的Browser上。
自己根据需要取舍吧。

private void showPdf(HttpServletResponse response,Blob blob,String fileName) {
        try {
            // Open a stream to read the Blob data
            InputStream blobStream = blob.getBinaryStream();
            
            // Open a file stream to save the Blob data
            FileOutputStream fileOutStream = new FileOutputStream(fileName);
            
            //Get a outputStreat from resposne
            response.setContentType("application/pdf");
            OutputStream out = response.getOutputStream();
            
            // Read from the Blob data input stream, and write to the file output
            // stream
            byte[] buffer = new byte[10]; // buffer holding bytes to be transferred
            int nbytes = 0;  // Number of bytes read
            while( (nbytes = blobStream.read(buffer)) != -1 ) // Read from Blob stream
            {
                fileOutStream.write(buffer, 0, nbytes);     // Write to file stream
                out.write(buffer, 0, nbytes);     // Write to response outputStream
            }
            // Flush and close the streams
            out.flush();
            out.close();
            fileOutStream.flush();
            fileOutStream.close();
            blobStream.close();
        } catch( Exception ex ) { // Trap SQL and IO errors
            System.out.println(" Error in retrieving and saving data!");
            System.out.println("n" + ex.toString());
        }
    }

|
先取出:ResultSet.getBytes(int columnIndex)或者getBlob(String colName)
再用BufferedOutputStream(new FileOutputStream).write(byte[] b)写就可以了。
很简单。

|
用Entity Bean,在Jbuilder里面能够自动识别出来是byte[]类型的,可以把对象序列化成byte[]存到数据库中去,任何实现Serialized接口的类都可以。

|
oracle.sql.CLOB clob1=oracle.sql.CLOB.empty_lob();
if (rset1.next())
{
   clob1 = (oracle.sql.CLOB)rset1.getClob(i);
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 编程语言 iis7站长之家
  • 请比较两种向数据库写入Blob对象的方法的优劣?
  • 救命呀!关于从数据库读取Word文档(BLOB)在JSP页面显示
  • 向数据库写blob类型的数据,出现找不到文件的错误
  • 如何在浏览器中显示ORACLE数据库中存在BLOB字段中的图形?
  • 请教啦,如何把数据库中blob字段存储的图片在jsp页面中显示出来?
  • java命名空间java.sql类types的类成员方法: blob定义及介绍
  • 关于Oracle BLOB类型,一个String字符怎么写入BLOB字段?
  • java命名空间java.sql接口blob的类成员方法: length定义及介绍
  • 什么是blob,mysql blob大小配置介绍
  • java命名空间java.sql接口blob的类成员方法: truncate定义及介绍
  • java.sql.Blob为什么不可以setBinaryStream的,只可以get,如果这样的话,在以前的jdbc版本中是怎样用BLOB数据类型来对表进行操作的,怎
  • java命名空间java.sql接口blob的类成员方法: getbinarystream定义及介绍
  • 与MSSQL对比学习MYSQL的心得(四)--BLOB数据类型
  • java命名空间java.sql接口blob的类成员方法: setbinarystream定义及介绍
  • BLOB and Servlet
  • java命名空间java.sql接口blob的类成员方法: getbytes定义及介绍
  • BlOB怎样初始化呀?
  • java命名空间java.sql接口blob的类成员方法: position定义及介绍
  • 为什么我的tomcat不认识BLOB?
  • java命名空间java.sql接口blob的类成员方法: setbytes定义及介绍
  • 测试添加Oracle中Blob数据类型对象
  • java命名空间java.sql接口blob的类成员方法: free定义及介绍
  • 向oracle的BLOB字段写入数据时出现的问题,救命!
  • 用oracle.sql.BLOB的getOutputBinaryStream(),向里面写入一个byte[],接进去的是长度一样的全0,怎么回事?
  • 请问如何将字节流转换为Blob?(100)
  • sos!!! 我要将一长串存成blob???~~^-^~~


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3