Armazenar um byte[] no banco de dados SQLite (RESOLVIDO)

8 respostas
T

Olá a todos !

Tenho um aplicação que me retorna um byte[] como resultado de uma
leitura de impressão digital.
Estes dados atualmente estão gravados em uma pasta no sistema, e eu
precisso envia-los para o banco de dados desta aplicação.

Pergunta:
Como posso armazenar um byte[] no banco de dados SQLite usando o Java ?

Obrigado !

8 Respostas

V

Use o método setBinaryStream do PreparedStatement.

E também use o ByteArrayInputStream.

T

Fiz um teste com o:

prep.setBytes(3, leitura);

  • leitura é um byte[]

e no banco o campo ficou nulo.

o tipo do campo no banco é blob

Poderia me mostra algum exemplo de como posso fazer isto !?

V


T

Ainda não funciona !! :?

o objeto tá puro byte[ ] (array de bytes inteteiros).

Aguem tem mais alguma ideia ?

V

ThiagoA:
Ainda não funciona !! :?

o objeto tá puro byte[ ] (array de bytes inteteiros).

Aguem tem mais alguma ideia ?

Nenhum dos dois exemplos que passei funcionou? O segundo inclusive foi testado…

Se nenhum funcionou, talvez seu banco não suporte Blobs.

T

Quando eu faço os teste passando uma ‘imagen’ para o banco,
tudo funciona bem, mas quando eu tento passar este arry com o comando:

prep.setBytes(3, leitura);

o campo no banco de dados (SQLite) fica ‘null’.

T

Consegui resolver !

Obrigado pela ajuda ViniGodoy !

Vou organizar o código e posto aqui como eu fiz !

T
PreparedStatement prep = conexao.getPreparedStatement("INSERT INTO biometria ( leituras_digitais )  VALUES(?)");

   prep.setBytes(1, leitura));
   
  prep.execute;

O tipo do campo na tabela do SQLite é ‘blob’
Desta forma o byte[] é armazenado da mesma forma que ele está
no código, e depois é só recupera-lo com o ResultSet:

ResultSet rs;
        
        rs = stn.executeQuery("SELECT leituras_digitais FROM biometria");
        
        byte[] by =  rs.getBytes("leituras_digitais");

Obrigado pela ajuda !

Criado 8 de setembro de 2012
Ultima resposta 8 de set. de 2012
Respostas 8
Participantes 2