Você pode ganhar um iPad 2 na promoção do Javafree
O Portal javafree.org inicia mais uma promoção para os usuários do fórum. Quem publicar mais posts válidos (perguntas ou respostas) entre 16/4 a 13/7 levará para casa um iPad 2 de 16GB!
Clique aqui e saiba mais.
Home > Artigos > Banco de Dados >
Manipulando campos BLOB e CLOB com JDBC
Publicado por brain em 29/12/2010 - 180.535 visualizações
Por: Giovane Roslindo Kuhn
Este tutorial apresenta de forma sucinta como manipular campos dos tipos BLOB e CLOB utilizando o driver Oracle JDBC (ojdbc14.jar).
Em linhas gerais, a prova de conceito possui os seguintes passos:
1) ler um arquivo texto (grande) e um arquivo binário (imagem);
2) inserir o conteúdo destes arquivos em um registro no banco de dados utilizando JDBC;
3) selecionar o registro do banco e ler o conteúdo dos campos BLOB e CLOB utilizando JDBC;
4) gerar um arquivo binário com o conteúdo do campo BLOB e um arquivo texto com o conteúdo do campo CLOB;
5) certificar que o conteúdo dos arquivos gerados é idêntico ao conteúdo dos arquivos originais;
Para o entendimento deste tutorial é necessário algum conhecimento em JDBC e SQL, para isto veja em:
Acessando banco de dados em Java (PARTE 1)
Acessando banco de dados em Java (PARTE 2)
Acessando banco de dados em Java (PARTE 3)
Let's play !!!
Preparando o ambiente
A preparação do ambiente para a prova de conceito tem os seguintes passos:
1) criação da tabela de testes com os campos BLOB e CLOB, segue definição:
2) criação do arquivo binário (teste.jpg)
3) criação do arquivo texto (teste.txt)
PS: Não é necessário preparar manualmente o ambiente, pois o programa de teste executa os passos descritos acima.
Inserindo registro
Para criar um registro, primeiramente deve ser inserido um registro com os campos CLOB e BLOB vazios:
Depois deve-se selecionar o registro e efetivamente inserir o conteúdo dos campos CLOB e BLOB, para isto o registro é bloqueado com a cláusula "for update":
Segue o código para atribuir o conteúdo do arquivo binário para o campo BLOB, nota-se que uma linha é específica para o driver Oracle, para outros drivers utilizar a linha comentada:
Segue o código para atribuir o conteúdo do arquivo texto para o campo CLOB, nota-se que uma linha é específica para o driver Oracle, para outros drivers utilizar a linha comentada:
Basta comitar a transação e fechar o cursor:
Selecionando registro
O próximo objetivo da prova de conceito é selecionar o registro inserido e criar um novo arquivo binário com o campo BLOB e outro para o campo CLOB.
Primeiro é selecionado o registro, um "select" normal:
Depois é criado um novo arquivo binário com o conteúdo do campo BLOB:
Depois é criado um novo arquivo texto com o conteúdo do campo CLOB:
Para finalizar é fechado o cursor:
Validando arquivos
Para validar a prova de conceito é feito uma comparação entre os arquivos originais e os arquivos novos, segue código que verifica se o conteúdo de dois arquivos são iguais:
Primeiro verifica os arquivos binários:
E por fim, verifica os arquivos textos:
Well, done !!!
Giovane Roslindo Kuhn é bacharel em Ciências da Computação pela Universidade Regional de Blumenau. Atuando profissionalmente no Projeto Jakare da empresa Senior Sistemas, que consiste em um framework para desenvolvimento de aplicações J2EE e é reponsável pelos projetos Baba XP, SnailDB e Apollo. Incentivador do uso de metodologias ágeis de desenvolvimento, especialmente XP e desing patterns.
- Ajuda em Banco de dados - HSQL - Postgree
- Transformar campo getBlob no select para cor
- Recuper dados do DB formatados.
- Gravando tipo BloB no banco
- BLOB para String
- Carregar imagem do HD e do banco usando jsf puro ou richface
- Problema com Java ISO-8859-1 UTF-8
- Cadastramento com foto - mysql
- String Macabra ... ?
- java.io.IOException erro ao manipular arquivo para CLOB


