Login Registre-se

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


comentários: 32

Manipulando campos BLOB e CLOB com JDBC

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.


comentários: 32