Fotografia em banco de dados

4 respostas
Linkel

Alguém sabe como gravar fotografias com uma aplicação java num banco de dados PostgreSQL???

Valeu!!!

4 Respostas

yorgan

Você quer o código ou quer saber que campo usar?
Campo você pode usar Blob ou um LongBlob(depende do tamanho que quer armazenar), agora o código, tem que ver o que você está usando para fazer a persistência.
Quer fazer usando SQL ou está utilizando algum framework?

Abraço

Ratao

Coloque as fotografias em um determinado diretório e salve sua referência (caminho) utilizando o tipo BLOB para sua coluna na tabela.

caique_castanho

Estou considerando que você sabe o funcionamento do JDBC. No Firebird usei o campo BLOB que no Postgre não se chama BLOB e sim BYTEA, segue um exemplo de como seria feito com Firebird, creio que funcionará normalmente com Postgre:

public void atualizaFoto(int codigo, Connection con) throws SQLException, Exception
{

    PreparedStatement pSt = con.prepareStatement("update funcionario set foto = ? where codigo = ?");

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    BufferedImage imagem = ImageIO.read(new File("mariabonita.gif"));
    ImageIO.write((BufferedImage)imagem, "png", baos);
    baos.flush();
    byte[] byteArray = baos.toByteArray();
    baos.close();

    pSt.setBytes(1 ,byteArray);
    pst.setInt(2, codigo);
    pst.executeUpdate();
    pst.close();
}
Linkel

Valeu, galera!
No PostgreSQL se chama realmente ByteA, mas não possui todas as propriedades de um campo blob como no Firebird e MySQL, por exemplo.
Mas vou testar o que o caique indicou…
Depois posto o resultado.
Obrigadão!

T+

Criado 3 de março de 2008
Ultima resposta 3 de mar. de 2008
Respostas 4
Participantes 4