JSP JSTL <sql:query>标签:通过SQL语句查询
<sql:query> 标签用于通过 SQL 语句查询符合条件的数据。语法:无查询条件的语法格式如下:
<sql:query sql="sqlQuery" 含有查询条件的语法格式如下:
<sql:query var="varName" <sql:query> 标签各属性的详细介绍如表所示。
说明:dataSource 属性是可选项,如果没有设置该属性,会在 page 范围内寻找数据源对象,如果找不到,则会抛出 JspException 异常。
示例1:应用 <sql:setDataSource> 标签连接 SQL Server 2000 数据库 db_testJSTL,并应用 <sql:query> 标签输出数据表 tb_user 中的从第 3 条记录开始的5条记录,关键代码如下:<%@page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%> <%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <sql:setDataSource driver="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=db_testJSTL" user="sa" password=""/> <sql:query var="rs" sql="SELECT*FROM tb_user" maxRows="5" startRow="2"/> <table width="300" border="1" cellspacing="0" cellpadding="0" bordercolor="#FFFFFF" bordercolordark="#999999" bordercolorlight="#FFFFFF"> <tr> <td align="center">&nbsp;${rs.columnNames[0]}</td> <td align="center">&nbsp;${rs.columnNames[1]}</td> <td align="center">&nbsp;${rs.columnNames[2]}</td> </tr> <c:forEach items="${rs.rowsByIndex}"var="row"> <tr> <td>&nbsp;${row[0]}</td> <td>&nbsp;${row[1]}</td> <td>&nbsp;${row[2]}</td> </tr> </c:forEach> </table> 示例2应用 <sql:setDataSource> 标签连接 MySQL 数据库 db_testJSTL,并应用 <sql:query> 标签输出数据表 tb_user 中的全部记录,关键代码如下:<%@page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%> <%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 连接 MySQL 数据库 <sql:setDataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/db_testjstl"user="root" password="111"/> <sql:query var="rs" sql="SELECT*FROM tb_user"/> <table width="300" border="1" cellspacing="0" cellpadding="0" bordercolor="#FFFFFF" bordercolordark="#999999"bordercolorlight="#FFFFFF"> <tr> <td align="center">&nbsp;${rs.columnNames[0]}</td> <td align="center">&nbsp;${rs.columnNames[1]}</td> <td align="center">&nbsp;${rs.columnNames[2]}</td> </tr> <c:forEach items="${rs.rowsByIndex}" var="row"> <tr> <td>&nbsp;${row[0]}</td> <td>&nbsp;${row[1]}</td> <td>&nbsp;${row[2]}</td> </tr> </c:forEach> </table> 示例3在 <sql:query> 标签中指定数据源为 <sql:setDataSource> 标签创建的数据源 conn,关键代码如下:<%@page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%> <%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> <sql:setDataSource driver="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=db_testJSTL" user="sa" password="" var="conn"/> <sql:transaction dataSource="${conn}"> <sql:query var="rs" sql="SELECT*FROM tb_user"/> 典型应用应用 <sql:query> 标签从数据库中 tb_goods 表的第 4 行记录开始无条件地查询6条记录。使用 <sql:query> 标签查询数据,关键代码如下:<%@page pageEncoding="gbk" contentType="text/html;charset=GBK"%> <%@taglib prefix="sql" uri="/WEB-INF/sql.tld"%> <%@taglib prefix="c" uri="/WEB-INF/c.tld"%> <sql:setDataSource driver="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=db_JSDQ26" user="sa"password=""/> <sql:query var="result" sql="select*from tb_goods" maxRows="6" startRow="4"/> <table width="400" border="1" cellpadding="0" cellspacing="0" bordercolor="white" bordercolordark="white" bordercolorlight="black"> <tr align="center" bgcolor="cyan"> <td width="80">${result.columnNames[1]}</td> <td width="300">${result.columnNames[2]}</td> <td width="50">${result.columnNames[3]}</td> <td width="50">${result.columnNames[4]}</td> </tr> <c:forEach items="${result.rowsByIndex}" var="row"> <tr> <td>${row[1]}</td> <td>${row[2]}</td> <td>${row[3]}</td> <td>${row[4]}</td> </tr> </c:forEach> </table>运行结果如下:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |