Firebird + Blob + Java

2 respostas
santoro

Pessoal, estou com um problema:

Tenho textos (String) de tamanho 500000, e preciso armazená-los no banco de dados (Firebird), li sobre armazenar em Blob para estes casos, mas não tenho um arquivo e sim apenas o texto, como fazer?

2 Respostas

santoro

Pessoal achei a solução, no Firebird criei:

CREATE DOMAIN MEMO AS BLOB SUB_TYPE 1 SEGMENT SIZE 5 CHARACTER SET WIN1254

e criei um campo na tabela to tipo MEMO

UPDATE

byte[] bindata = pagina.getTexto().getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(bindata);
pstmt.setBinaryStream(++idx, bais, bindata.length);

SELECT

Blob blob = rs.getBlob("CAMPOBLOB");
InputStream in = blob.getBinaryStream() ;
int tamanho = in.available();
byte[] buf;
if (tamanho > 0) 
{
    buf = new byte[tamanho];
    in.read (buf);
    in.close();
    classe.setTexto(classe.getTexto()+new String (buf, "ISO-8859-1"));
}
R

Como utilizaria usando Classes DAO …

Criado 25 de maio de 2006
Ultima resposta 6 de jun. de 2006
Respostas 2
Participantes 2