<sql:query>-Tag

JSP 标准标签库JSP-Standard-Tag-Bibliothek

Das <sql:query>-Tag wird verwendet, um SQL-SELECT-Anweisungen auszuführen und die Ergebnisse in einer Variable mit Gültigkeitsbereich zu speichern.

Syntaxformat

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

Attribute

Das <sql:query>-Tag hat die folgenden Attribute:
Attribute Beschreibung Erforderlich Standardwert
sql Der auszuführende SQL-Befehl (gibt ein ResultSet-Objekt zurück) nein Body
dataSource Die zu verwendende Datenbankverbindung (überschreibt die Standardverbindung) nein Standarddatenbank
maxRows Maximale Anzahl der in der Variable gespeicherten Ergebnisse nein Unbegrenzt
startRow Die Zeilennummer, ab der Ergebnisse aufgezeichnet werden nein 0
var Variable, die die Datenbank repräsentiert nein Standardeinstellungen
scope Gültigkeitsbereich des var-Attributs nein Page


Programmbeispiel

Erstellen Sie zunächst eine Tabelle Employees in der Datenbank TEST und fügen Sie dann einige Datensätze zur Tabelle hinzu. Die einzelnen Schritte sind wie folgt:

Schritt 1:

Öffnen Sie CMD und wechseln Sie in das Installationsverzeichnis:

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

Schritt 2:

Melden Sie sich bei der Datenbank an:

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

Schritt 3:

Erstellen Sie die Tabelle Employees in der Datenbank 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>

Datensätze erstellen:

Erstellen Sie schließlich einige Datensätze in der Tabelle 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>

Schreiben Sie nun eine JSP-Datei, die das <sql:query>-Tag verwendet, um SQL-SELECT-Anweisungen auszuführen:

<%@ 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>

Das Ausführungsergebnis ist wie folgt:


JSP 标准标签库JSP-Standard-Tag-Bibliothek

Andere Erweiterungen