Você está na página 1de 8

CRUD com JSP CRUD o acrnimo da expresso do idioma Ingls, Create (Criao), Retrieve (Consulta), Update (Atualizao) e Delete

e (Destruio). Este acrnimo comumente utilizado definir as quatro operaes bsicas usadas em Banco de Dados Relacionais. por
Everton Coimbra de Arajo
78 5 1 18

Este mais um artigo que submeto ao Linha de Cdigo, dando sequncia a uma srie de material, resultado obtido atravs de pesquisas e laboratrios com meus alunos da UTFPR, campus Medianeira. Reforo o empenho e dedicao destes alunos, que foi extremamente comprometido com a pesquisa e aprendizado durante os semestres que mantivemos contato prximo nas disciplinas que a eles eu ministrava. Isso me motivou muito a fazer com que o resultado dos trabalhos deles aparecesse para o mundo e, nada melhor do que o Linha de Cdigo para isso.

Neste artigo apresento o Rodrigo Baron, que pode ser contactado pelo email baron.rodrigo0@gmail.com. O Rodrigo foi meu aluno em algumas disciplinas de sua graduao e tem experincia na Linguagem Java para desenvolvimento de aplicacoes distribuidas Desktop (JSE) e aplicacoes WEB (JEE), sendo este ultimo o de maior conhecimento e interesse. Desta forma, estejam a vontade em solicitar o curriculum dele. Quando trabalho a disciplina de desenvolvimento web, fazendo uso de JSP, sempre apresento aos alunos algumas tcnicas relacionadas persistncia de dados. Algumas destas tcnicas no devem nunca serem utilizadas em um ambiente de produo, mas ajudam em muito aos alunos na introduo e prtica ao desenvolvimento web. Este artigo um destes casos. O Rodrigo trabalhou aqui a criao de um CRUD em pginas JSP, porm, no foram trabalhadas situaes de reusabilidade ou uso de patterns, desta forma, o apresentado neste material no deve ser utilizado em produo, pois seu objetivo apenas didtico.

O que CRUD? CRUD o acrnimo da expresso do idioma Ingls, Create (Criao), Retrieve (Consulta), Update(Atualizao) e Delete (Destruio). Este acrnimo comumente utilizado definir as quatro operaes bsicas usadas em Banco de Dados Relacionais. A Figura 1 apresenta uma ilustrao que representa o comportamento de uma aplicao web aps uma requisio do usurio para alguma operao CRUD.

Figura 1: Execuo de uma requisio CRUD Iniciando o projeto No Eclipse, crie um projeto WEB (WEB Dynamic Project). Neste novo projeto, na pasta WebContent crie um arquivo JSP com o nome de index.jsp, que ser a pagina inicial da aplicao. Esta pgina inicial ter a responsabilidade de listar os dados existentes em uma tabela de uma base de dados, neste exemplo, usurios. Nesta listagem, cada coluna da tabela referencia um campo e cada linha referencia um registro da tabela, mas para a interface com o usurio, para este exemplo, utilizada mais algumas colunas, que sero as operaes para determinado registro. Essas operaes sero para Atualizar ou Remover um determinado registro. Para disparar estas operaes sero criados links, que quando o usurio clicar neles a operao especfica seja disparada. Abaixo da tabela, que representa a listagem, apresentado tambm um link para cadastrar novos usurios, como pode ser visto pela Figura 2.

Figura 2: Listagem de dados armazenados em uma tabela Operao de Retrieve do CRUD A Figura 3 traz a primeira parte da implementao da pgina, responsvel pela gerao da listagem exibida pela Figura 2. Note que neste incio de arquivo feito uso apenas de tags HTML. Estas tags so responsveis pela criao da tabela e o cabealho das colunas.

Figura 3: Primeira parte da pgina geradora da listagem Uma vez que se faz uso neste artigo apenas de recursos disponveis para uma pgina JSP, sero utilizados scriptlets para criar a conexo com o banco e leitura dos dados, como pode ser verificado atravs da Figura 4.

Figura 4: Conexo e acesso aos dados Com os atributos populados basta exibir. Note que o while que promove a leitura dos dados obtidos no contm o fechamento do bloco (a chave (})). Na Figura 5, mais abaixo, a continuidade da tabela apresentada entre as linhas 41 e 49. possvel verificar que criada uma linha para a tabela para cada registro da tabela do banco de dados. Existe uma coluna alm das dos dados, a ltima, que traz um link para outra pgina, a qual permitir a edio/alterao dos dados da linha em questo. Note no link que so passados como parmetros os dados que sero a chave para realizar as operaes. As linhas 50 a 54 fecham o while e em seguida os recursos relacionados conexo com o banco. As linhas aps a 54 tratam do fechamento da tabela HTML e criao de um link para a pgina adicionarUsuarios.jsp e ento o fechamento do HTML.

Figura 5: Conexo e acesso aos dados Operao de Create do CRUD possvel verificar que poder ocorrer uma redundncia de cdigo se todas as aes forem realizadas como a ao retrieve, pois seria criada sempre uma nova conexo. Para no haver essa redundncia, possvel criar uma pagina JSP que ser responsvel por realizar algumas tarefas. Mas antes, vamos a pgina adicionarUsuario.jsp.

Figura 6: Formulrio para insero de usurios A Figura 6 apresenta o cdigo para a pgina que monta o layout a ser apresentado ao usurio, que pode ser visualizado pela Figura 7. Alm das colunas relacionadas entrada de dados foi inserido um campo oculto (hidden linha 21), um boto de submit e um link de cancelar.

Figura 7: Formulrio para insero de usurios O campo oculto, apresentado na Figura 6, (type=hidden) serve apenas, neste caso, para a passagem da ao (value=adicionar), que ser capturada pela pgina de Action. Esta pgina de action a que recebe a submisso de um formulrio HTML e tem sua implementao apresentada naFigura 8, com o nome usuarioAction.jsp.

Figura 8: Implementao da action que processar a requisio de insero O arquivo representado pela Figura 8 foi criado apenas com scriptlets, que importa as funcionalidades do java.sql. Foi criada uma conexo, uma string sql que ser a instruo SQL enviada ao banco e um PreparedStatement que o responsvel pela execuo da instruo SQL no banco. feita uma verificao em relao ao parmetro chamado ac", para verificar se o valor do mesmo adicionar e, caso positivo todo o processamento para a insero realizado. Caso o parmetro no for adicionar devero ser testadas outras aes. Operao de Update do CRUD

Figura 8: Implementao da action que processar a requisio de insero Na pagina editarUsuario.jsp (Figura 8), foi implementado um formulrio da mesma forma que na pagina adicionarUsuario.jsp,mas cada input vai conter o valor pego na index.jsp. Observe que no link editar na index so passados estes valores aqui capturados e por fim, criado campo oculto passando a ao atualizar.

Figura 9: Formulrio de alterao de dados Vamos tratar essa ao no usuarioAction.jsp, que apresentado pela Figura 10.

Figura 10: Action para alterao Da mesma forma que foi feito para inserir o usurio, foi feito para atualiz-lo, ou seja, testado o valor do campo oculto e se o valor for atualizar, faz-se uso da conexo criada, utilizam-se os parmetros que vieram da pgina na instruo SQL para update. Operao de Delete do CRUD

E por fim o delete. Voc j deve ter percebido que no link delete na pgina index.jsp (Figura 17), foi utilizado o id e criado um parmetro ac com o valor rm direto no usuarioAction. Figura 11: Link para remoo O tratamento para esta operao implementado e demonstrado pela Figura 12.

Figura 12: Action para remoo Caso o valor do parmetro ac seja rm, o id e utilizado na instruo DELETE . Concluso Atravs do apresentado neste trabalho pde ser verificado que possvel realizar operaes com banco de dados fazendo uso apenas de paginas JSP. importante ressaltar que o aqui apresentado tem objetivos acadmicos, no sendo recomendado para situaes de produo, pois com o surgimento de frameworks, como o JSF, esta tcnica torna-se improdutivo. REFERNCIAS
http://pt.wikipedia.org/wiki/CRUD

Acessado em 04 de fevereiro de 2010.


http://www.linhadecodigo.com.br/Artigo.aspx?id=853&pag=2

Acessado 05 de fevereiro de 2010.

Everton Coimbra de Arajo - Desde 1987 atua na rea de treinamento e desenvolvimento. Como Mestre em Cincia da Computao, professor da UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN, Campus Medianeira, onde leciona disciplinas relacionadas ao desenvolvimento de aplicaes web, com Java e .NET. autor dos livros Desenvolvimento para WEB com Java, Orientao a Objetos com Java - Simples, Fcil e Eficiente, Algoritmo - Fundamento e Prtica em sua terceira edio e dos livros Delphi - Implementao e Tcnicas para Ambientes Virtuais e C++ Builder - Implementao e Tcnicas para Ambientes Virtuais. Todos pela VisualBooks. Pode ser contactado atravs do e-mail everton@utfpr.edu.br ou evertoncoimbra@gmail.com.
78 5 1 18

Leia tambm
Conhecendo a interface Map do JavaJava

Trabalhando com a Interface Set no JavaJava Classes Wrappers em JavaJava ComboBoxModel em JavaJava Reduzindo a Mutabilidade em JavaJava
Read more: http://www.linhadecodigo.com.br/artigo/2997/crud-com-jsp.aspx#ixzz2xrwjBVSk