Srs. Bom dia,
Estou encontrando uma dificuldade enorme em salvar imagens no meu banco de dados, estou usando - Netbeans 6.8 + Hibernate + Postgress, segue abaixo o código que estou usando, ocorre que quando consulto o banco os dados cadastrados não passam de 6 ou 7 caracteres.
Peço por gentileza caso possam ajudar, já perdi um bom tempo nisso patinando nisso e não saio do lugar.
------------ Minha classe ------------
private void gravaEmpresa() throws FileNotFoundException{
if (listEmpresas.size() == 0){
try {
//Chama o método pra adicionar todos os dados padrões no sistema,
//já que é a primeira entrada do sistema.
carrega();
//Cria uma empresa padrão
empresas = new Empresa();
empresas.setId(Long.parseLong("1"));
empresas.setNomeFantasia("SIG");
//Ler a imagem do caminho especificado
logomarca = ImageIO.read(new File("C:/1.jpg"));
//OBTEM A IMAGEM E TRANSFORMA EM BYTES[]
ByteArrayOutputStream bytesImg = new ByteArrayOutputStream();
ImageIO.write((BufferedImage) logomarca, "jpg", bytesImg); //seta a imagem para bytesImg
bytesImg.flush(); //limpa a variável
// System.out.print(?1º print ? + bytesImg);
byte[] byteArray = bytesImg.toByteArray(); //Converte ByteArrayOutputStream para byte[]
bytesImg.close(); //fecha a conversão
System.out.print(?2º print ? + byteArray);
empresas.setLogomarca(byteArray); //erro no banco ... ou no DAO
empresaDAO.saveOrUpdate(empresas);
//Cria Outros atributos padrões
JOptionPane.showMessageDialog(this, "Entre em cadastros para cadastrar sua empresa!", "Bem Vindo", JOptionPane.PLAIN_MESSAGE);
} catch (IOException ex) {
Logger.getLogger(FormLogin.class.getName()).log(Level.SEVERE, null, ex);
}
} else{
setVisible(true);
usuarios = null;
}
}
------------ Meu DAO ------------
/**Classe Empresa DAO - Faz as tarefas de inclusão, exclusão, alteração e consultas de Empresas no banco de dados
*São métodos usados para fazer todas alterações necessárias nos registros de Empresas.
**/
package dao;
import entidades.Empresa;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.EntityManager;
import util.Banco;
public class EmpresaDAO {
//Cria um novo objeto de entidade.
EntityManager em;
//Cria um objeto para fazer as consultas.
Query q;
//Construtor da classe que já instacia os objetos para acesso ao banco.
public EmpresaDAO() {
//Objeto de entidade recebe um objeto de entidade real do banco, através da classe Banco.
em = Banco.getInsatance().getEntityManager();
//Cria um objeto para manipular as consultas no banco.
q=em.createQuery(“FROM Empresa empres order by empres.nomeFantasia”);
}
//Método que faz consulta ao banco de dados através do ID passado como parâmetro.
public Empresa get(Long id){
em.clear();
em.getTransaction().begin();
Empresa empres =em.find(Empresa.class,id);
em.getTransaction().commit();
return empres;
}
//Cria uma consulta de Empresa, e retorna em uma lista de Empresas.
public List<Empresa> select(){
em.clear();
em.getTransaction().begin();
List lista=em.createQuery("FROM Empresa empres order by empres.nomeFantasia").getResultList();
em.getTransaction().commit();
return lista;
}
//Busca de Empresas, passando uma lista de empresas, e um filtro passado como parâmetro.
public List<Empresa> select(String filtro){
em.clear();
em.getTransaction().begin();
String hsql;
hsql = "FROM Empresa empres ";
hsql += "Where ";
hsql += " empres.nomeFantasia like :filtro ";
Query query = em.createQuery(hsql);
query.setParameter("filtro", filtro + "%");
List lista=query.getResultList();
em.getTransaction().commit();
return lista;
}
//Método para salvar Empresa. Passa um objeto Empresa como parâmetro.
public void saveOrUpdate(Empresa empres){
em.clear();
em.getTransaction().begin();
em.merge(empres);
em.getTransaction().commit();
}
//Método para deletar Empresa. Passa um objeto Empresa como parâmetro.
public void delete(Empresa empres){
em.clear();
em.getTransaction().begin();
empres = em.find(Empresa.class, empres.getId());
if (empres!=null){
em.remove(empres);
}
em.getTransaction().commit();
}
public Empresa select(int varlogoempresa) {
em.clear();
em.getTransaction().begin();
Empresa empres =em.find(Empresa.class,varlogoempresa);
em.getTransaction().commit();
return empres;
}
}
------------ Minha tabela ------------
/*
- Pessoa.java
*Classe de Empresa - Generica
- To change this template, choose Tools | Template Manager
- and open the template in the editor.
*/
package entidades;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public class Empresa implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
private String razaoSocial;
private String nomeFantasia;
private String cnpj;
private String inscricaoEstadual;
private String endereco;
private String complemento;
private String cep;
private String telefoneFixo;
private String telefoneCelular;
private String grauRisco;
private String numFuncionarios;
private String observacoes;
private boolean flagEmpresaCliente;
private String contato;
private String cargoContato;
@Lob
@Column(name = "testefoto")
private byte[] testefoto;
@Lob
@Column(name = "testefoto")
private byte[] logomarca;
@ManyToOne
private Cidade cidade;
@ManyToOne
private Bairro bairro;
@ManyToOne
private CodAtivEconomica codAtivEconomica;
public Empresa() {
}
public byte[] getTestefoto() {
return testefoto;
}
public void setTestefoto(byte[] testefoto) {
this.testefoto = testefoto;
}
public byte[]getLogomarca () {
return logomarca;
}
public void setLogomarca (byte[]logomarca) {
this. logomarca = logomarca;
}
public Cidade getCidade() {
return cidade;
}
public void setCidade(Cidade cidade) {
this.cidade = cidade;
}
public String getRazaoSocial() {
return razaoSocial;
}
public void setRazaoSocial(String razaoSocial) {
this.razaoSocial = razaoSocial;
}
public String getNomeFantasia() {
return nomeFantasia;
}
public void setNomeFantasia(String nomeFantasia) {
this.nomeFantasia = nomeFantasia;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public String getTelefoneFixo() {
return telefoneFixo;
}
public void setTelefoneFixo(String telefoneFixo) {
this.telefoneFixo = telefoneFixo;
}
public String getTelefoneCelular() {
return telefoneCelular;
}
public void setTelefoneCelular(String telefoneCelular) {
this.telefoneCelular = telefoneCelular;
}
public String getGrauRisco() {
return grauRisco;
}
public void setGrauRisco(String grauRisco) {
this.grauRisco = grauRisco;
}
public String getNumFuncionarios() {
return numFuncionarios;
}
public void setNumFuncionarios(String numFuncionarios) {
this.numFuncionarios = numFuncionarios;
}
public String getObservacoes() {
return observacoes;
}
public void setObservacoes(String observacoes) {
this.observacoes = observacoes;
}
public boolean getFlagEmpresaCliente() {
return flagEmpresaCliente;
}
public void setFlagEmpresaCliente(boolean flagEmpresaCliente) {
this.flagEmpresaCliente = flagEmpresaCliente;
}
public String getContato() {
return contato;
}
public void setContato(String contato) {
this.contato = contato;
}
public String getCargoContato() {
return cargoContato;
}
public void setCargoContato(String cargoContato) {
this.cargoContato = cargoContato;
}
public CodAtivEconomica getCodAtivEconomica() {
return codAtivEconomica;
}
public void setCodAtivEconomica(CodAtivEconomica codAtivEconomica) {
this.codAtivEconomica = codAtivEconomica;
}
public Bairro getBairro() {
return bairro;
}
public void setBairro(Bairro bairro) {
this.bairro = bairro;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public String getInscricaoEstadual() {
return inscricaoEstadual;
}
public void setInscricaoEstadual(String inscricaoEstadual) {
this.inscricaoEstadual = inscricaoEstadual;
}
/**
* Retorna um valor de codigo hash para o objeto.
*/
@Override
public int hashCode() {
int hash = 0;
hash += (this.id != null ? this.id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Empresa)) {
return false;
}
Empresa other = (Empresa)object;
if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) return false;
return true;
}
/**
* Retorna uma representa��o literal deste objeto. Esta implementa��o cria
* uma representa��o baseada nos campos id.
* @return uma representa��o literal deste objeto.
*/
@Override
public String toString() {
//return "classes.Empresa[id=" + id + "]";
return nomeFantasia;
}
}