Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

caezar

salvar um ImageIcon em um campo blob

Recommended Posts

Pessoal tenho um ImageIcon e preciso salvar em minha base de dados MySql. Acredito que preciso usar um setBinaryStream de um PreparedStatement, mas como eu recebo um ImageIcon em um PreparedStatement

 

Grato,

Compartilhar este post


Link para o post
Compartilhar em outros sites
File file = new File("/caminho/para/minha/imagem");
fis = new FileInputStream(file);

ps = conn.prepareStatement("insert into tabela(id, nome, imagem) values(?, ?, ?)");
ps.setString(1, 1);
ps.setString(2, "Imagem.png");
ps.setBinaryStream(3, fis, (int) file.length());

ps.executeUpdate();
conn.commit();

Eu pessoalmente recomendaria outra abordagem. Acho melhor salvar a imagem no Sistema de Arquivos e no banco apenas o caminho para a imagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vergil é um ImageIcon, não tenho o caminho do arquivo.

 

Tks

Se voce nao sabe a URL do arquivo entao e impossivel salva-lo: seja no banco de dados, seja no file system.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É possível transformar um ImageIcon em uma sequência de bytes?

Claro! Mas é preciso ter a URL dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que esse ImageIcon vem de um campo blob já.

 

Cara! Se ele veio do banco quer dizer que voce ja o tem como InputStream. A interface java.sql.Blob tem um método chamado getBinaryStream onde tu podes recuperar o InputStream ou então podes utilizar o método getBytes para recuperar os bytes da imagem. Ainda é possível recuperar um input stream diretamente do ResultSet com resultSet.getBinaryStream(indiceDaColunaTipoBlob).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.