JSTL <sql:query> 标签用来执行 SQL SELECT 语句,查询数据库中的数据。
语法
JSP <sql:query> 标签的语法如下:
<sql:query var="varname" [dataSource="dataSource"] [maxRows="maxRows"] [scope="page|session|request|application"] sql="sqlQuery" [startRow="startRow"]
其中:
-
[ ]
:[ ]
中的内容为可选项; - var:代表 SQL 查询的结果;
- dataSource:连接的数据源;
- maxRows:设置最多可存放的记录条数;
- scope:设定参数 var 的有效范围,默认为 page;
- sql:查询的 SQL 语句;
- startRow:开始查询的行数。
示例
下面为 <sql:query> 标签的简单示例。
创建 website 数据表,并插入数据。点击下载 SQL 文件(下载后需要解压)。
index.jsp 代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<!DOCTYPE html>
<html>
<head>
<title>runoops自学(www.runoops.com)</title>
</head>
<body>
<body>
<sql:setDataSource var="test" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test" user="root" password="root" />
<sql:query dataSource="${test}" var="result">
SELECT * FROM website;
</sql:query>
<table border="1" width="100%">
<tr>
<th>id</th>
<th>name</th>
<th>url</th>
<th>age</th>
<th>country</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
<td><c:out value="${row.id}" /></td>
<td><c:out value="${row.name}" /></td>
<td><c:out value="${row.url}" /></td>
<td><c:out value="${row.age}" /></td>
<td><c:out value="${row.country}" /></td>
</tr>
</c:forEach>
</table>
</body>
</html>
运行结果如下: