LOGIN:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

Segunda-feira, 20/10/2003 - 02:59 - Por Christiano Pinheiro
Seções relacionadas:

Salvando imagens no banco de dados

Olá, pessoal. Desculpem-me pela demora e pela pausa no assunto anterior, mas me envolvi em alguns projetos e estou "correndo mais que notícia ruim". Mas isso não significa que a coluna ficará abandonada. Prometo recuperar o tempo perdido assim que possível.

Neste artigo veremos como gravar e ler imagens de um banco de dados (algo que é muito pedido por e-mails).

Let's Rock!

Para armazenar as imagens em um banco, precisamos definir o campo que irá contê-la como um tipo especial que suporte formatos que não sejam plain text: o Blob.

Blob (em JAVA)

Blob é uma interface JDBC mapeada para um tipo SQL BLOB. Um blob é obtido pelo método getBlob() de um ResultSet ou de um CallableStatement.

Um blob possui também métodos para recuperar seu número de bytes e determinar a posição inicial de outro Blob ou um array de bytes no blob atual.

Este métodos funcionam sem materializar os dados. Para materializar os dados, podemos utilizar o método getBinaryStream() ou getBytes().

Para armazenar o blob, utilizamos o método setBlob() a partir de um PreparedStatement ou updateObject de um ResultSet atualizável.

Vejamos agora como inserir uma imagem em um campo Blob:

  try{
    ...
    File arquivo = new File(...);
    FileInputStream inputStream = new FileInputStream(arquivo);
    PreparedStatement pstmt =  conn.prepareStatement("insert into
IMAGE_TABLE values (?,?)"); pstmt.setString(1,arquivo.getName()); pstmt.setBinaryStream(2,inputStream,(int)arquivo.length()); pstmt.executeUpdate(); ... } catch(...){ ... }

A seguir, veremos como obter uma imagem salva em um campo Blob:

   try{ 
    ...
    rs = pstmt.executeQuery();
    if( rs.next() ){
      Blob blob = rs.getBlob(1);
      ImageIcon imageIcon = new ImageIcon(blob.getBytes(1, (int)blob.length())); 
    }
    ...
  }
  catch(...){
    ...
  }

Espero que o exemplo seja útil para vocês assim como foi para todos aqueles que me pediram por e-mail!

Ficamos por aqui pessoal. Um forte abraço e até a próxima!

 

Todos os artigos de Christiano Pinheiro

2 comentários publicados

  • 1. Blob problemático

    Terça-feira, 02/08/2005, por CJanayna

    Olá,
    Quando da recuperação da imagem, é criada um arquivo do mesmo tamanho da imagem, mas não é possível vizualizá-lo. Qual será o problema?
    Agradeço a atenação,

    Responder comentário
  • 2. Oiiiii!

    Quarta-feira, 27/08/2008, por Milena Sene

    Só parabenizando pelo artigo... Era exatamente o que eu estava precisando, funcionou direitinho :)

    Responder comentário

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Christiano Pinheiro é desenvolvedor do iBanking da Caixa para Handhelds e diretor tecnológico da Systray.


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.