Hibernate ou CMP + campo para armazenar imagem

8 respostas
urubatan

Seguinte,
tanto faz utilizando Hibernate ou CMP para persistencia
mas qual o tipo de campo que utilizo para armazenar uma imagem no banco de dados??

nunca precisei fazer isto antes :frowning:

valeu galera

8 Respostas

cariocathi

em todos os bancos de dados q conheço o data type a ser usado nessa situação é BLOB.

Daniel_Quirino_Olive

Em um banco de dados, use algum tipo de LOB (BLOB, CLOB). Usando o hibernate, declare a propriedade responsável do seu objeto responsável por manter referência à imagem do tipo java.sql.Blob.

urubatan

valeu, vou testar :slight_smile:

Hammer

fikei bastante interessado nisso, mas noa sei como declara ela via hibernate, um string q vai como VARCHAR no hibernate fica assim:

private String nome;

@Column(name = "nome")
	public String getNome() {
		return this.nome;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}

e como eu faco para declarar uma para a imagem? como faco para persistir ela e pra recuperar e abrir ela?

kaoe

Tenta algo como

private byte[] imagem;
 
       @Lob
 	public byte[] getImagem() {
 		return this.imagem;
 	}
 	
 	public void setImagem(byte[] imagem) {
 		this.imagem = imagem;
 	}
Hammer

otimo, so pra confirmar: faltou a declaracao da coluna nao?

e outra, se eu kiser abrir essa imagem, so usar algo do tipo:

File file = new File(obj.getImagem()); certo?

e pra salvar? como uso o set? com file?

kaoe

A Anotaçao Column é opcional, ela so será necessária se você pretender mudar algum dos defaults do Hibernate tipo nome da coluna tipo de campo no banco de dados etc, em geral os defaults server. Quanto a abrir a imagem ou salvar em arquivo use um FileOutputStream para salvar em arquivo e para visualizar dentro de alguma tela em Java use o ImageIO junto com um ByteArrayInputStream para criar um objeto do tipo BufferedImage.

Hammer

bem, vc falou sobre abrir e salvar em arquivo, fikei um pouco confuso, pois oq eu kero eh salvar no meu banco de dados em mysql, eh do mesmo jeito tb?

Criado 27 de agosto de 2003
Ultima resposta 28 de jun. de 2007
Respostas 8
Participantes 5