sql >> Databáze >  >> RDS >> PostgreSQL

Aktualizace JLabel přes SetIcon z datového typu bytea v postgresu

Nemám k dispozici instalaci PostgreSQL, ale myslím, že byste měli psát/číst formát obrázku a ne BufferedImage data.

Psaní může například vypadat nějak takto...

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();
}

A čtení může vypadat nějak takto...

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. Rozdíl mezi primárním klíčem a jedinečným klíčem

  2. Jak mohu vyplnit sloupec náhodnými čísly v SQL? Dostanu stejnou hodnotu v každém řádku

  3. Jak zobrazit nebo odkrýt panel nástrojů Rychlý přístup ve Wordu, Excelu a PowerPointu

  4. Jak nainstalovat MySQL Workbench na Ubuntu