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: 69.206 ]

Por: Fábio em 17/02/2006


Visualizando dados de uma consulta



O arquivo abaixo executará uma consulta no banco de dados e listará as informações em uma página JSP no formato de uma tabela. Salve este arquivo em CATALINA_HOME/webapps/fba/consulta.jsp com o seguinte conteúdo:

<%--
a tag abaixo define que a pagina deve usar a jstl 'sql' e a jstl 'c' que é responsável por executar algumas funções como for
--%>

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

<sql:setDataSource
var="Conexao"
dataSource="jdbc:mysql://localhost/fba,com.mysql.jdbc.Driver,Usuario,Senha"/> <%--
a tag abaixo possui os mesmos argumentos da tag 'sql update', explicada na pagina anterior, com a única diferença que ela é usada para executar 'consultas' no banco
--%>


<sql:query dataSource="${Conexao}" var="Consulta">
SELECT * FROM Teste
</sql:query>

<html>
<head>
<title>
RESULTADO
</title>
</head>
<body>
<table width="100%" border=1>
<%--
A ação 'c forEach' funciona da seguinte forma, ela executa um loop por todos os registros de um array no caso abaixo ele percorre o array Consulta.columnNames que possui o nome das colunas retornados pelo banco de dados na consulta
--%>


<tr>
<c:forEach var="NomeColuna" items="${Consulta.columnNames}">
 <th>
   <c:out value="${NomeColuna}"/>
 </th>
</c:forEach>
</tr>

<%--
usando as ações da tag 'c forEach' são obtidos os valores do array de array(vetor) da variável 'Consulta.rowsByIndex' que possui os valores das linhas e colunas da consulta retornadas pelo banco. A primeira ação 'c forEach' executa um loop pelo primeiro array(linhas) e a outra pelo segundo array que esta dentro do primeiro (colunas)
--%>


<c:forEach var="Row" items="${Consulta.rowsByIndex}">
 <tr>
  <c:forEach var="Coluna" items="${Row}">
   <td>
    ${Coluna}
   </td>
  </c:forEach>
 </tr>
</c:forEach>
</table>
<%--
rowCount mostra o total de linhas retornados pela consulta
--%>

Total de registro: ${Consulta.rowCount}<br>

<%--
Abaixo alguns exemplos de como acessar diretamente os valores da variável Consulta que é um array dentro do outro array (ou seja um vetor)
--%>


Acessando o valor da primeira linha(linha 0), primeira coluna(coluna 0):${Consulta.rowsByIndex[0][0]}<br>
Acessando o valor da primeira linha(linha 0), segunda coluna(coluna 1):${Consulta.rowsByIndex[0][1]}<br>
</body>
</html>

Depois de salvar o arquivo para ver o resultado basta abrir o navegador e acessar "http://localhost:8080/fba/consulta.jsp".

Espero que tenham gostado do artigo, todas as dúvidas, sugestões e críticas construtivas serão bem-vindas.

Página anterior    

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

JSP - Parte 1

GWT - Google Web Toolkit

URLConnection :: SuperClass

URLs amigáveis com URL_Filter_Rewrite e Struts2

  
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