sql >> データベース >  >> RDS >> PostgreSQL

postgresのbyteaデータ型からSetIconを介してJLabelを更新する

    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. プロパティマネージャーがデータベースを使用して効率を向上させる方法

    2. MySQLで配列変数をシミュレートするにはどうすればよいですか?

    3. フラットjsonb配列の要素に対するLIKEクエリ

    4. SQLインデックスの概要