Etiqueta <sql:query>

JSP 标准标签库Biblioteca de etiquetas estándar de JSP

La etiqueta <sql:query> se utiliza para ejecutar sentencias SQL SELECT y almacenar los resultados en una variable de ámbito.

Formato de sintaxis

<sql:query
  var="<string>"
  scope="<string>"
  sql="<string>"
  dataSource="<string>"
  startRow="<string>"
  maxRows="<string>"/>

Atributos

La etiqueta <sql:query> tiene los siguientes atributos:
Atributo Descripción ¿Requerido? Valor predeterminado
sql El comando SQL a ejecutar (devuelve un objeto ResultSet) no Body
dataSource La conexión de base de datos utilizada (anula el valor predeterminado) no Base de datos predeterminada
maxRows Número máximo de resultados almacenados en la variable no Infinito
startRow Número de fila del resultado donde comenzar a registrar no 0
var La variable que representa la base de datos no Configuración predeterminada
scope El ámbito del atributo var no Page


Ejemplo de programa

Primero, debe crear una tabla Employees en la base de datos TEST y luego agregar algunos registros a la tabla. Los pasos específicos son los siguientes:

Paso 1:

Abra CMD y cambie el directorio al directorio de instalación:

C:\>
C:\>cd "Program Files\MySQL\bin"
C:\Program Files\MySQL\bin>

Paso 2:

Inicie sesión en la base de datos:

C:\Program Files\MySQL\bin>mysql -u root -p
Enter password: ********
mysql>

Paso 3:

Cree la tabla Employees en la base de datos TEST:

mysql> use TEST;
mysql> create table Employees
    (
     id int not null,
     age int not null,
     first varchar (255),
     last varchar (255)
    );
Query OK, 0 rows affected (0.08 sec)
mysql>

Crear registros de datos:

Finalmente, cree algunos registros en la tabla Employees:

mysql> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali');
Query OK, 1 row affected (0.05 sec)
 
mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma');
Query OK, 1 row affected (0.00 sec)
 
mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan');
Query OK, 1 row affected (0.00 sec)
 
mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal');
Query OK, 1 row affected (0.00 sec)
 
mysql>

Ahora, escriba un archivo JSP y use la etiqueta <sql:query> para ejecutar la sentencia SQL SELECT:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>

<html>
<head>
<title>JSTL sql:query Tag</title>
</head>
<body>
 
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost/TEST"
     user="root"  password="pass123"/>

<sql:query dataSource="${snapshot}" var="result">
SELECT * from Employees;
</sql:query>
 
<table border="1" width="100%">
<tr>
<th>Emp ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>Age</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
<td><c:out value="${row.id}"/></td>
<td><c:out value="${row.first}"/></td>
<td><c:out value="${row.last}"/></td>
<td><c:out value="${row.age}"/></td>
</tr>
</c:forEach>
</table>

</body>
</html>

El resultado de la ejecución es el siguiente:


JSP 标准标签库Biblioteca de etiquetas estándar de JSP

Otras extensiones