eclipse 下使用JSTL SQL标签库。
一.准备工作。
首先需要能够确保工程能够成功连接数据库和能够从数据库源中直接使用数据库。
然后导入JSTL所需要的两个jar包,并且使用taglib指令将其导入:
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
二.JSTL SQL 标签库主要包括的标签。
1.<sql:setDataSource>:设置数据源。
该标签可以使用var属性来将数据库连接保存到该命名变量中,使用scope可以设置该变量的范围。
可以有两种方法来设置数据源。
(1).直接使用标签自身创建数据源。
<sql:setDataSource
url="jdbc:mysql://localhost:3306/bookdb"
driver="com.mysql.jdbc.Driver"
user="root"
password="hello1"/>
此时并没有使用var属性,所以该数据库连接会成为默认的数据库使用(下面如果使用数据库时没有指定数据库时,则默认使用这个),也没有使用scope属性,所以默认的范围为page。
(2).直接从数据库源中使用数据库链接。
之前已经配置成功一个名字为jdbc/bookdb的数据源,此时便可以直接调用。
<sql:setDataSource dataSource="jdbc/bookdb" var="myRes" />
并且使用var属性,将该数据库连接保存到myRes变量中,由于没有指明scope所以使用的是默认范围page。
2.<sql:query>:执行SQL的select语句。
该标签主要用于执行SQL的select查询语句,主要有以下属性:
sql:指定select查询语句。
dataSource:指定数据源。如果没有设定该属性,则使用<sql:setDataSource>标签设置的默认数据源。
maxRows:指定从原始查询结果中取出的最大记录数目。
startRow:指定从原始查询结果中第几条记录开始取出记录,第一个是0.
var:指定查询结果的命名变量名。
scope:指定查询结果的存放范围,默认为page。
使用该标签查询将会返回的结果是一个javax.servlet.jsp.jstl.sql.Result类型的,在这个接口中定义了5个方法:
String[] getColumnNames():返回查询结果中的所有字段的名字。
int getRowCount():返回查询结果中的所有记录的数目。
SortedMap[] getRows():返回查询结果中的所有记录。每个SortedMap对象表示一个记录,它以字段的名字作为Key,以相应的字段值作为Value。
Object[][] getRowsByIndex(): 以二维数组形式返回查询结果。第一维表示查询结果的记录(行),第二维表示查询结果的字段(列)。
boolean isLimitedByMaxRows(): 判断查询结果的记录数目是否受到<sql:query>的maxRows属性的限制。若原始查询结果的记录数目大于maxRows返回true,否则返回false。
eg:
在数据库中建立了一个表test。
<%@ page language=