Исключение нулевого указателя при загрузке изображений в Oracle 10g - PullRequest
0 голосов
/ 06 июня 2011

У меня есть такое отношение 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

file ok

java.lang.NullPointerException

Пожалуйста, помогите получить сетку этого ...

Ответы [ 3 ]

1 голос
/ 06 июня 2011

В какой момент вы получаете исключение Null Pointer? Кроме того, строка, в которой вы получаете экземпляр соединения, con=(Connection)session.getAttribute("connection");, проверяет, чтобы убедиться, что экземпляр соединения не является нулевым. Хранение объекта подключения в сеансе может не быть хорошим подходом. Либо создайте соединение, используя класс DriverManager , либо лучше используйте пул соединений. Кроме того, используйте некоторую библиотеку для загрузки файлов, например Apache Commons File Upload . Для библиотеки достаточно документации, чтобы сделать загрузку изображения достаточно простой.

0 голосов
/ 06 июня 2011

Для дальнейшего использования, когда вы спрашиваете об исключении, лучше всего сообщить нам, в какой строке произошло исключение.В данном конкретном случае довольно ясно, что это строка:

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

, и проблема в том, что ваш con равен нулю.Так что вам нужно посмотреть, откуда взялся этот con и как он заполняется.Но в других обстоятельствах трудно понять из кода, в чем может быть проблема.

0 голосов
/ 06 июня 2011

Вы хотите использовать JDBCConnectionPool. Подробнее см. здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...