Armazenar um byte[] no banco de dados SQLite (RESOLVIDO)
8 respostas
T
ThiagoA
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 ?
Use o método setBinaryStream do PreparedStatement.
E também use o ByteArrayInputStream.
T
ThiagoA
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
ViniGodoy
T
ThiagoA
Ainda não funciona !! :?
o objeto tá puro byte[ ] (array de bytes inteteiros).
Aguem tem mais alguma ideia ?
V
ViniGodoy
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
ThiagoA
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
ThiagoA
Consegui resolver !
Obrigado pela ajuda ViniGodoy !
Vou organizar o código e posto aqui como eu fiz !
T
ThiagoA
PreparedStatementprep=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:
ResultSetrs;rs=stn.executeQuery("SELECT leituras_digitais FROM biometria");byte[]by=rs.getBytes("leituras_digitais");