在Oracle 10g中上载图像时出现空指针异常

时间:2011-06-06 01:30:09

标签: java oracle file-io file-upload

我有这样的关系 成功创建表的Create table ImageFile1(name varchar2(200), id number(30), Image BLOB);

但是当我尝试使用PreparedStatement插入数据时,我将问题视为空指针异常 我使用的代码是..

        Connection con=null;
        System.out.println("Connection created0");
        Statement stmt=null;
        System.out.println("Connection created1");
        ResultSet rs=null;
        System.out.println("Connection created2");

        con=(Connection)session.getAttribute("connection");
        System.out.println("Connection created");



        File imgfile = new File("C:\\Users\\HP\\Pictures\\PALLU.jpg");

        System.out.println("*******");
        FileInputStream fin = new FileInputStream(imgfile);
        System.out.println("file ok");

        PreparedStatement pre = con.prepareStatement("insert into ImageFile1 values(?,?,?)");
                System.out.println("ps ok");
        pre.setString(1,"Vijay");
        pre.setInt(2,1);
        pre.setBinaryStream(3,fin,(int)imgfile.length());
        System.out.println("image problem solved");
        pre.executeUpdate();
        System.out.println("Inserting Successfully!");
        pre.close();

,输出为:

Connection created0
Connection created1
Connection created2
Connection created

文件确定

java.lang.NullPointerException

请帮助解决这个......

3 个答案:

答案 0 :(得分:1)

您在哪点获得空指针异常?此外,您获取连接实例con=(Connection)session.getAttribute("connection");的行检查以确保连接实例不为空。在Session中存储连接对象可能不是一个好方法。使用DriverManager类创建连接或更好地使用连接池。 此外,使用一些文件上传库,如Apache Commons File Upload。有足够的文档供图书馆使用,使图像上传非常简单。

答案 1 :(得分:0)

您想要使用JDBCConnectionPool。有关详细信息,请参阅here

答案 2 :(得分:0)

为了将来参考,在询问异常时,最好告诉我们异常发生在哪一行。在这种特殊情况下,很明显就是这一行:

        PreparedStatement pre = con.prepareStatement("insert into ImageFile1 values(?,?,?)");

问题是你的con为空。因此,您需要查看con的来源以及填充方式。但在其他情况下,很难从代码中推断出问题可能是什么。