English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

<sql:query> Schaltfläche

JSP-Standard-Tag-Bibliothek

Die <sql:query>-Schaltfläche wird verwendet, um SQL SELECT-Anweisungen auszuführen und die Ergebnisse in den Bereichsvariablen zu speichern.

Grammatikformat

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

Eigenschaft

Die <sql:query>-Schaltfläche hat folgende Eigenschaften:

EigenschaftBeschreibungNotwendigkeitStandardwerte
sql Das SQL-Befehl, das ausgeführt werden muss (returniert ein ResultSet-Objekt) Nein Körper
dataSource Die verwendete Datenbankverbindung (überschreibt den Standardwert) Nein Standarddatenbank
maxRows Die maximale Anzahl der Ergebnisse, die in der Variable gespeichert werden Nein Unendlich
startRow Die Anzahl der Zeilen, die das Ergebnis der Aufzeichnung beginnen Nein 0
var Stellt die Datenbank dar Nein Standardwerte
Bereich Die Funktion der var-Attribute Nein Seite

Programmbeispiel

Zunächst muss in der TEST-Datenbank eine Employees-Tabelle erstellt werden, und dann einige Zeilen in die Tabelle eingefügt werden. Die spezifischen Schritte sind wie folgt:

步骤1:

打开CMD,将目录转至安装目录下:

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

步骤2:

登录数据库:

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

步骤3:

在TEST数据库中建立Employees表:

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>

创建数据记录:

最后,在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>

现在,编写JSP文件,使用<sql:query>标签来执行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>Mitarbeiter-ID</th>
<th>Vorname</th>
<th>Name</th>
<th>Alter</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>

Laufende Ergebnisse wie folgt:

JSP-Standard-Tag-Bibliothek