PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Актуализиране на JLabel чрез SetIcon от тип данни bytea в postgres

Нямам налична инсталация на PostgreSQL, но мисля, че трябва да пишете/четете формата на изображението, а не BufferedImage данни.

Например писането може да изглежда нещо като...

Connection con = ...;
BufferedImage img = ...;
try (PreparedStatement stmt = con.prepareStatement("insert into tableofimages (image) values (?)")) {
    try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
        ImageIO.write(img, "png", baos);
        try (ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray())) {
            stmt.setBinaryStream(1, bais);
            int rows = stmt.executeUpdate();
            System.out.println(rows + " rows updated");
        }
    }
} catch (SQLException | IOException exp) {
    exp.printStackTrace();
}

А четенето може да изглежда нещо като...

Connection con = ...;
try (PreparedStatement stmt = con.prepareStatement("select image from tableofimages")) {
    try (ResultSet rs = stmt.executeQuery()) {
        while (rs.next()) {
            try (InputStream is = rs.getBinaryStream(1)) {
                BufferedImage img = ImageIO.read(is);
            }
        }
    }
} catch (SQLException | IOException exp) {
    exp.printStackTrace();
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL пул на връзки с PgBouncer

  2. Заявка с LEFT JOIN не връща редове за брой 0

  3. Топ 5 PostgreSQL инструменти за наблюдение на заявки

  4. Как да коригирам грешките при несъответствие на версията pg_dump?

  5. Пролетна конференция FLOSS UK