Preciso salvar um pdf que o usuário escolher em um campo blob do banco de dados em uma aplicação desktop, alguem poderia auxiliar como fazer?
Opa, wsm, beleza?
Para executar esse procedimento, você deve fazer o seguinte:
- Entenda como funcionam os objetos de Stream do JAVA. É através dele que você manipula bytes de arquivos. Procure sobre FileOutputStream e similares;
- Você deve usar os objetos acima para pegar o arquivo, ler todos os seus bytes e gravar em um array (byte[]).
- Se estiver usando JDBC, você pode usar o PreparedStatement e usar o método setBytes para passar esse array para o banco de dados.
- Se estiver usando ORM, defina que o campo é um campo BLOB e defina-o, também, como byte[].
Espero ter ajudado,
fique com Deus!
blz, vou pesquisar estou usando jdbc
Tem uma pergunta semelhante e uma solução nesse link: http://stackoverflow.com/questions/11238927/upload-pdf-file-to-mysql-blob-by-using-java-sql-preparedstatement-without-corrup
O código que funcionou para a pessoa seria assim:
[code]File inFile = new File(“arquivo.pdf”);
FileInputStream io = new FileInputStream(inFile);
PreparedStatement psmnt = (PreparedStatement)
con.prepareStatement(“INSERT INTO 2012DOC (CODIGO, DOCUMENTO) VALUES (?,?)”);
psmnt.setString(1, “000001”);
psmnt.setBinaryStream(2, (InputStream)io,(int)inFile.length());
psmnt.executeUpdate();[/code]
Valeu funcionou, e para abrir o arquivo blob no java como faço?
ResultSet rs=con.Execute("SELECT DOCUMENTO FROM DOC");
rs.next();
java.sql.Blob blob = rs.getBlob("DOCUMENTO");
Tem o exemplo no mesmo link que postei anteriormente.
E para visualizar esse blob que veio do banco de dados, como faço?
Dupliquei mensagem sem querer