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

Javaを使用してPostgresqlで画像を保存および取得する

    postgresql jdbcドキュメントの第7章では、バイナリデータの保存を扱い、例として画像(* .gifファイル)を使用します。あなたはそれを読みたいかもしれません。

    (上記のリンクから)データベースに画像を挿入する

    File file = new File("myimage.gif");
    FileInputStream fis = new FileInputStream(file);
    PreparedStatement ps = conn.prepareStatement("INSERT INTO images VALUES (?, ?)");
    ps.setString(1, file.getName());
    ps.setBinaryStream(2, fis, (int)file.length());
    ps.executeUpdate();
    ps.close();
    fis.close();
    

    dbから(上記のリンクからも)画像を読み取る

    // Get the Large Object Manager to perform operations with
    LargeObjectManager lobj = ((org.postgresql.PGConnection)conn).getLargeObjectAPI();
    
    PreparedStatement ps = conn.prepareStatement("SELECT imgoid FROM imageslo WHERE imgname = ?");
    ps.setString(1, "myimage.gif");
    ResultSet rs = ps.executeQuery();
    while (rs.next()) {
        // Open the large object for reading
        int oid = rs.getInt(1);
        LargeObject obj = lobj.open(oid, LargeObjectManager.READ);
    
        // Read the data
        byte buf[] = new byte[obj.size()];
        obj.read(buf, 0, obj.size());
        // Do something with the data read here
    
        // Close the object
        obj.close();
    }
    rs.close();
    ps.close();
    


    1. SQLServerでのカスタムの日付/時刻の書式設定

    2. ORDER BY(SELECT NULL)はどういう意味ですか?

    3. 2つの異なるwhere句を持つ2つのデータセットを返す必要があります

    4. 既存のテーブルに外部キーを追加する