无法使用jdbc存储图像

时间:2011-02-24 15:36:58

标签: java jdbc


我不知道我在这个程序中犯了什么错误。我无法存储从数据库中恢复的图像。

import java.io.*;
import java.sql.*;
public class kmpp
{
    public static void main(String args[]) throws IOException
    {
        FileOutputStream fos=null;
        Connection con=null;
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","rock");
            PreparedStatement ps=con.prepareStatement("select * from image where name=?");
            ps.setString(1,"mohit");
            ResultSet rs=ps.executeQuery();
            if(rs.next())
            {
                InputStream is=rs.getBinaryStream(2);
                fos=new FileOutputStream("F:/Documents and Settings/cboy/Desktop/New Folder/moh.jpg");
                int data;
                while((data=is.read())!=-1)
                {
                    fos.write(data);
                }
                fos.close();
            }
        }
        //is.close();
        catch(Exception e)
        {
            e.printStackTrace();
            System.out.println("Exception caught ");
        }
        //fos.close();
        //con.close();
    }
}

1 个答案:

答案 0 :(得分:0)

第二列是blob还是longraw?如果是blob,请尝试使用rs.getBlob(2).getBinaryStream()而不是rs.getBinaryStream(2)。