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.759 ]

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

URLs amigáveis com URL_Filter_Rewrite e Struts2

Eclipse - Instalando o plugin do Jetty WTP

JSP - Parte 2

GWT - Google Web Toolkit

  
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