Gravar arquivo no banco de dados

Pessoal,

Estou criando um sistema utilizando Java / JSP e em uma das telas, o usuário terá a opção de anexar documentos (.doc, .pdf, …) que deverão ser gravados no banco em um campo do tipo BLOB.
Achei poquíssimos exemplos na net, mas não consegui entender muito bm. Como poderia representar isso na classe? Como manipular o arquivo e gravar no banco de dados?

Muito obrigada

Olá

Uma alternativa que geralmente é mais eficiente é simplesmente armazenar os arquivos em um diretório qualquer no servidor que seja alvo de rotinas de backup e colocar na base de dados apenas o nome e endereço de cada arquivo.

[]s
Luca

Mas isso eu não posso fazer, pois tenho que deixar o caminho de lado e gravar o documento.

[quote=barbinha]
Estou criando um sistema utilizando Java / JSP e em uma das telas, o usuário terá a opção de anexar documentos (.doc, .pdf, …) que deverão ser gravados no banco em um campo do tipo BLOB[/quote]

Da. Bárbara, (estou supondo que seja esse o seu nome… :wink: )

O suporte a BLOB não é muito bom para diversos drivers JDBC, e muitas vezes é necessário usar diretamente a API do banco em questão (como oracle.jdbc.), em vez de usar as classes padrão JDBC (java.sql.).

É por isso que você não acha muitos exemplos decentes por aí.

Que chato… (já tive problemas desse tipo com stored procedures, que reconhecidamente não são padrão também.)

Por exemplo, pode ser que o programa que você achou funcione para arquivos de 4K mas não funcione com arquivos de 100K.

Que banco você está usando (versão etc.), e que driver você usa para acessá-lo?

De qualquer maneira, se você gosta de exemplos, vá para http://www.javaalmanac.com , e digite “BLOB” no campo de pesquisa. Lá tem um exemplo meio fuleiro de leitura de dados de BLOBs - você precisa completar com os imports, com a conexão do banco de dados, e mexer um pouco naquele código de teste. É mais para você ver o que tem de fazer, do que usar sem entender como é feito.
Dica: sempre que precisar de alguma ajuda, vá para http://javaalmanac.com e procure um exemplo. Isso ajuda bastante.

Estou usando o Oracle 9i e o driver é o ojdbc14.jar.

O que vc me recomenda fazer nesse caso? O que seria mais seguro???

Valeu.

Nada como procurar o exemplo no site da Oracle,

http://www.oracle.com/technology/sample_code/tutorials/index.html

http://www.oracle.com/technology/sample_code/tech/java/sqlj_jdbc/index.html

Tem um monte de exemplos, é só procurar.

(É que não tenho nenhum exemplo pronto, se tivesse até lhe passava.
Como estou sem um banco Oracle aqui - pegou fogo no prédio onde trabalhava e tenho de ficar em outro lugar agora - não consigo fazer um código de exemplo bem simples, que é o que normalmente faria num caso desses.