JSP acessando MySQL usando JSTL e EL

fba

JSP acessando MySQL usando JSTL e TL. Calma, não se assuste, a única coisa complicada nisso é o nome. Esse artigo mostra como é fácil manipular informações em um banco de dados usando páginas JSP.

[ Hits: 68.734 ]

Por: Fábio em 17/02/2006


Inserindo dados numa tabela



Agora deve ser criado um banco de dados chamado fba e depois criada a tabela Teste. Para fazer isso, no terminal digite:

$ mysql -u [usuário] -p [senha]

Onde [usuário] é o nome do usuário que foi criado no MySQL quando ele foi instalado e [senha] é a senha a ele atribuída.

E no prompt do MySQL execute o comando:

> CREATE DATABASE fba;

Para criar o banco de dados e:

> CREATE TABLE fba.Teste(Campo1 varchar(255),Campo2 Varchar(255));

Para criar a tabela que usaremos para fazer os testes.

Agora vamos criar os dois arquivos que serão responsáveis por inserir informações na tabela Teste. Segue abaixo o código do arquivo que irá receber as informações do usuário para posteriormente enviar esse conteúdo à página JSP que se encarregará de salvar as informações na tabela. Salve este arquivo em CATALINA_HOME/webapps/fba/inserir.htm com o seguinte conteúdo:

<html>
<head>
<title>Inserir informações na tabela</title> </head>
<body>

<!--
Abaixo a definição de qual arquivo receberá o conteúdo dos campos quando a pagina for submetida
-->


<form action="inserir.jsp" method="POST">

<!--
Abaixo a definição do componente da pagina que irá receber as informações do campo 'Campo1' para ser salva posteriormente na tabela
-->


Campo1 <INPUT type="text" name="Campo1" size="60" maxlength="255"><br>

<!--
E abaixo o outro componente da pagina que irá receber as informações do campo 'Campo2' para ser salva na tabela quando for clicado em 'submit'
-->


Campo2 <INPUT type="text" name="Campo2" size="60" maxlength="255"><br>

<!--
Botão 'submit' responsável por enviar as informações digitadas nos dois componentes descritos acima
-->


<INPUT type="submit">

</form>
</body>
</html>

E abaixo o código do arquivo que irá receber as informações da página anterior e irá salvar na tabela. Salve este arquivo em CATALINA_HOME/webapps/fba/inserir.jsp com o seguinte conteúdo:

<!--
a tag abaixo define que a pagina deve usar a jstl 'sql' que é responsável pela interação com o banco de dados
-->


<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

<!--
A tag abaixo define um 'data source' que é um componente que armazena informações da conexão com o banco como nome do banco, nome do usuário, senha e qual jdbc deve ser usado. O atributo 'var' é usado para atribuir um nome ao objeto, que poderá ser acessado posteriormente usando a EL ${Conexao}. O atributo 'dataSource' define os parâmetros usados para realizar a conexão com o banco. Substitua os valores Usuario pelo nome do usuário criado na hora da instalação do mysql e senha pela sua respectiva senha
-->


<sql:setDataSource
var="Conexao"
dataSource="jdbc:mysql://localhost/fba,com.mysql.jdbc.Driver,Usuario,Senha"
/>

<%--
A tag abaixo define um 'sql update' que é responsável por executar 'modificações' no banco.
No atributo 'dataSource' define que objeto 'data source' deve ser usados.
No atributo 'var' define o nome do objeto 'sql update'
No corpo da tag (entre a tag <sql:update> e As tags 'sql param' são responsáveis por substituir o '?' definido na cláusula sql do 'sql update' pelo valor recebido no atributo 'value'
Perceba que no atributo 'value' da tag sql:param existe uma EL, ela acessa o objeto param(objeto este que contém as informações enviadas através do submit da pagina inserir.htm) e o sub-objeto Campo1 que possui o conteúdo do primeiro componente definido no arquivo inserir.htm e o mesmo acontece no segundo 'sql param' perceba também que existem duas formas de acessar os sub-objetos de um objeto pai, usando a sintaxe objeto.sub-objeto ou objeto['sub-objeto'] ambas tem o mesmo efeito
--%>


<sql:update dataSource="${Conexao}" var="Alteracao">
INSERT INTO Teste (Campo1,Campo2)
VALUES(?,?);
<sql:param value="${param.Campo1}"/>
<sql:param value="${param['Campo2']}"/>
</sql:update>

<html>
<head>
<title>
INSERINDO INFORMAÇÕES NA TABELA
</title>
</head>
<body>
<%--
o valor contido na variável 'Alteração' é o numero de registros afetados na operação retornado pelo bando de dados
--%>

Total de registros inseridos: ${Alteracao}<br>
</body>
</html>

Depois basta abrir o navegador e testar acessando "http://localhost:8080/fba/inserir.htm", entrando com alguma informação nos campos e clicando em 'submit'.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Programas necessários e alguns ajustes finos
   3. Inserindo dados numa tabela
   4. Visualizando dados de uma consulta
Outros artigos deste autor

Squid logando usuários em aplicações web

Leitura recomendada

Configurando TomCat

GWT - Google Web Toolkit

URLs amigáveis com URL_Filter_Rewrite e Struts2

Eclipse - Instalando o plugin do Jetty WTP

URLConnection :: SuperClass

  
Comentários
[1] Comentário enviado por lennon.jesus em 17/02/2006 - 16:00h

Bom artigo.
Parabéns e obrigado.

Lennon Jesus.

[2] Comentário enviado por removido em 20/02/2006 - 17:40h

Olá não é uma boa usar taglib para esse fim... principalmente porque vc ta misturando regras de seu negócio com a visualização em si... somente ai... ja fere todo o padrão de MVC. Do qual ajuda bastante em separação do código(Scriptlets) das htmls(Views). Pense nissso ;)

[3] Comentário enviado por fba em 20/02/2006 - 18:00h

Guinet, realmente em se tratando de MVC(Model View Controller certo?) o correto é separar visualização das regras de negocio porém em se tratando de aplicações que não seguem a MVC é muito funcional e útil, alem de que nada impede de separar as regras de negocio e vizualização usando as tags vai do gosto de cada um :D existem mil maneiras de fazer algo e obrigado pelo comentario ;)

[4] Comentário enviado por removido em 21/02/2006 - 10:15h

Exato... vai de vc escolher a melhor forma de se desenvolver um projeto... prefira sempre MVC e frameworks que lhe auxiliam no desenvolvimento de um software mais robusto.

Abraços.

[5] Comentário enviado por fabioroque em 11/03/2010 - 14:21h

muito bom seu post,
mas como faço para exibir a primeira linha da consulta e depois usando um next as outras sucesivamente
desde ja fabio roque

[6] Comentário enviado por johnny_begood em 19/08/2010 - 16:23h

muito bom seu post...
mas eu particularmente não uso mais jsp para conectar em bd..
prefiro usar framework, em jsf consigo fazer a mesma aplicação usando php para
conectar ao banco de dados, somente configuro o xml, e tudo fica mais facil

Mas de qualquer forma, valeu o post

muito bom


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts