Прочитать файл Blob, не сохраняя его - PullRequest
0 голосов
/ 03 ноября 2019

Я планировал зашифровать строку с помощью открытого ключа, который хранится в базе данных как Blob. Я создал метод с именем readBlob(), чтобы прочитать ключ и сохранить его в файл.

  public static void readBlob(int userid, String filename) throws SQLException, IOException {
      String url = "jdbc:mysql://localhost:3306/bank";
        String user = "root";
        String password = "root";
        String email=null;

            Connection conn = DriverManager.getConnection(url, user, password);
            String sql = "select * from users where user_id=?";
            PreparedStatement statement = conn.prepareStatement(sql);
            statement.setLong(1, userid);
            ResultSet result = statement.executeQuery();
            File file = new File(filename);
            @SuppressWarnings("resource")
            FileOutputStream output = new FileOutputStream(file);
            String keys=null;

    while(result.next()) {
         byte[] buffer = new byte[1];
         InputStream input = result.getBinaryStream("key");
         while (input.read(buffer) > 0) {
             output.write(buffer);
            }        
        }
  }

Это сработало очень хорошо, но мне не нужно сохранять его в локальном файле, мне нужен способ читать Blob, не сохраняя его.

1 Ответ

0 голосов
/ 03 ноября 2019

Вы можете использовать getBlob

Blob key = result.getBlob("key")

Извлекает значение указанного столбца в текущей строке этого объекта ResultSet в качестве объекта Blob на языке программирования Java.

...