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

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

URLs amigáveis com URL_Filter_Rewrite e Struts2

JSP - Parte 1

URLConnection :: SuperClass

JSP - Parte 2

  
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