Загрузка BLOB-объекта в базу данных на Java - PullRequest
0 голосов
/ 18 августа 2010

Я написал Java-программу, в которую я могу вставлять изображения в мой BLOB-объект базы данных Oracle.Он отлично работает в других системах, но не работает в моей системе, когда я хочу вставить изображение размером более 2 КБ.Но из моей системы я могу получить изображения любого размера.Это же приложение хорошо работает в другой системе, но работает ненормально, и иногда я не могу прочитать из исключения сокета, когда я пытаюсь вставить изображение размером более 2 КБ.Пожалуйста, помогите.

Я использую драйвер typ4.

Ниже приведена структура моей таблицы: *

Name                                                  Null?    Type
----------------------------------------------------- -------- ----------------------
NAME                                                  NOT NULL VARCHAR2(20)
DESCRIPTION                                           NOT NULL VARCHAR2(20)
IMAGE                                                 NOT NULL BLOB

Ниже приводится моя Java-программа для вставки изображения.Опять же, он работает на других системах в той же сети, которые подключены к тому же серверу Oracle.Но из-за проблемы с системой, когда я пытаюсь загрузить изображение размером более 2 КБ.

package com.smruti.image;

import java.io.File;
import java.io.FileInputStream;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.*;

public class InsertImage {
  private static String url = "jdbc:oracle:thin:@server3:1521:server3";
  private static String username = "system";
  private static String password = "manager";

  public static void main(String[] args) throws Exception {
    Connection conn = null;
    InputStream fis = null;
    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        conn = DriverManager.getConnection(url, username, password);
        conn.setAutoCommit(false);

        String sql = "INSERT INTO pictures VALUES (?, ?, ?)";
        PreparedStatement stmt = conn.prepareStatement(sql);
        stmt.setString(1, "scare.jpg");
        stmt.setString(2, "scare image");

        File image = new File("C:\\images.jpeg"); 
        fis = new FileInputStream(image);
        int ilen=(int) image.length();
        System.out.println(ilen);
        System.out.println(fis);
        stmt.setBinaryStream(3, fis, ilen);
        stmt.execute();

        System.out.println("this is upto b4 commit");   
        conn.commit();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (fis != null) {
            fis.close();
        }
        if (conn != null && !conn.isClosed()) {
            conn.close();
        }
    }
  }
}

Ответы [ 2 ]

2 голосов
/ 18 августа 2010

Эта внешняя ветка обсуждения указывает, что это может быть проблема с драйвером jdbc.Они рекомендуют обновить тонкие драйверы oracle jdbc.

0 голосов
/ 26 сентября 2013

Я тоже столкнулся с той же проблемой, я не мог загрузить файл размером более 2 КБ ... Обновление драйвера oracle jdbc в ojdbc5.jar решило эту проблему.

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