Balise <sql:query>

JSP 标准标签库Bibliothèque de balises standard JSP

La balise <sql:query> est utilisée pour exécuter des instructions SQL SELECT et stocker les résultats dans une variable de portée.

Format de syntaxe

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

Attributes

La balise <sql:query> possède les attributs suivants :
Attribut Description Requis Valeur par défaut
sql La commande SQL à exécuter (retourne un objet ResultSet) non Body
dataSource La connexion à la base de données à utiliser (remplace celle par défaut) non Base de données par défaut
maxRows Nombre maximal de résultats stockés dans la variable non Infini
startRow Le numéro de ligne à partir duquel commencer l'enregistrement des résultats non 0
var Variable représentant la base de données non Paramètres par défaut
scope Portée de l'attribut var non Page


Exemple de programme

Tout d'abord, créez une table Employees dans la base de données TEST, puis ajoutez quelques enregistrements à la table. Les étapes spécifiques sont les suivantes :

Étape 1 :

Ouvrez CMD et positionnez-vous dans le répertoire d'installation :

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

Étape 2 :

Connectez-vous à la base de données :

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

Étape 3 :

Créez la table Employees dans la base de données 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>

Créer des enregistrements de données :

Enfin, créez quelques enregistrements dans la table 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>

Maintenant, écrivez un fichier JSP qui utilise la balise <sql:query> pour exécuter des instructions 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>

Le résultat d'exécution est le suivant :


JSP 标准标签库Bibliothèque de balises standard JSP

Autres extensions