Galera estou tendando gravar um arquivo de texto (pdf, txt ou uma imagem de extensão tif)
Estou usando o tipo de dados bytea
quando vou inserir neste campo dou um insert e passo para o campo um array de bytes, quando dou um select no pgadminIII aparece no campo que gravei o seguinte = [B@955b34;
Quando leio do banco via java e mando imprimir para arquivo ele escreve para o arquivo = [B@955b34 e não o conteudo do arquivo original
Codigo usado para inserir a imagem ou arquivo onde buffer é o array de bytes
String sql = "", sql1 = "";
if(buffer.length > 1){ // se o string de bytes for maior que um ou existir, insere a imagem.
sql = "insert into tbl_contrato values('"+cod+"','"+empresa+"','"+tipo+"','"+dataEmissao+"','"+dataEncerramento+"','"+nomeCliente+"','"+buffer+"','"+extensao+"','"+nomeArquivo+"')";
Codigo usado para ler os bytes e quem vem uma serie de caracteres loucos.
Onde rs.getBytes(7) tenta recuperar os bytes.
try {
Statement st = conexao.createStatement();
ResultSet rs;
String sql = "select c.cod_contrato, c.cod_empresa, c.tipo_contrato, c.data_emissao, c.data_encerramento, c.nome_cliente, c.contrato_escaneado, c.extensao, c.nome_arquivo, e.nome_empresa from tbl_contrato as c , tbl_empresa as e where c.cod_empresa = e.cod_empresa and cod_contrato = '"+codContrato+"'";
rs = st.executeQuery(sql);
if(rs.next()){
contrato = new Contrato( rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getBytes(7), rs.getString(8), rs.getString(9), rs.getString(10));
}
Alguem sabe o que pode estár errado?