今天,我來(lái)講解下一些很重要的jstl標(biāo)簽,如果運(yùn)用得當(dāng),可以大大的簡(jiǎn)化數(shù)據(jù)庫(kù)的操作,減少代碼量。首先sql標(biāo)簽可以實(shí)現(xiàn)包括查詢(xún)、更新、事務(wù)處理和設(shè)置數(shù)據(jù)源等強(qiáng)大的功能。下面分別講述。
<sql:setDataSource>
<sql:query>
<sql:update>
<sql:transaction>
<sql:param>
<sql:setDataSource>
語(yǔ)法:<sql:setDataSource>用來(lái)設(shè)置數(shù)據(jù)源,可以通過(guò)scope設(shè)置使用范圍,如page、application、session等。有兩種方式可以設(shè)置數(shù)據(jù)源,一種是直接使用在web中配置的數(shù)據(jù)源,只要指定jndi名就可以了(這個(gè)就不要我多講了吧,呵呵),第二種是指定所有的連接屬性。
<sql:setDataSource
{dataSource=”dataSourceName” | url=”jdbcurl”
[driver=”driverClassName”]
[user=”userName”]
[password=”password”]
[var=”varName”]
[scope=”{page|session|request|application}”]/>
舉例:sql_datasource.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>JSTL:<sql:setDataSource>的使用</title>
</head>
<body bgcolor="#FFFFFF">
創(chuàng)建普通的數(shù)據(jù)源:<br>
<sql:setDataSource
var="ds1"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jstlTest"
user="jstl"
password="jstl"
/>
從jndi名稱(chēng)空間中獲得一個(gè)數(shù)據(jù)源。<br>
<sql:setDataSource
var="ds2"
dataSource="jdbc/ds2"
/>
</body>
</html>
<sql:query>
作用:不用說(shuō)都知道了,數(shù)據(jù)庫(kù)操作中最頻繁的查詢(xún)。
語(yǔ)法:a、沒(méi)有body
<sql:query sql=”sqlQuery”
Var=”varName” [scope=”{page|session|request|application}”]
[dataSource=”dataSourceName”]
[maxRows=”maxRows”]
[startRow=”startRow”] />
b、有一個(gè)body ,并在body 中指定了查詢(xún)需要的參數(shù)
<sql:query sql=”sqlQuery”
Var=”varName” [scope=”{page|session|request|application}”]
[dataSource=”dataSourceName”]
[maxRows=”maxRows”]
[startRow=”startRow”] >
<sql:param> actions
</sql:query>
c、有body,并且可以指定可選的參數(shù)(< sql:param >在后面講述)
<sql:query sql=”sqlQuery”
Var=”varName” [scope=”{page|session|request|application}”]
[dataSource=”dataSourceName”]
[maxRows=”maxRows”]
[startRow=”startRow”] >
query
optional<sql:param> actions
</sql:query>
舉例:sql_query.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>JSTL:<sql:query>的使用</title>
</head>
<body bgcolor="#FFFFFF">
<sql:setDataSource
var="ds2"
dataSource="jdbc/ch12"
/>
第一種查詢(xún):<hr>
<sql:query var="query" dataSource="${ds2}">
SELECT * FROM sql_test
</sql:query>
<table border="1">
<c:forEach var="row" items="${query.rows}">
<tr>
<td>Name: <c:out value="${row.id}"/></td>
<td>mobile: <c:out value="${row.power}"/></td>
</tr>
</c:forEach>
</table>
<hr>
第2種查詢(xún):<hr>
<sql:query var="query2" sql="SELECT * FROM sql_test where id=?" dataSource="${ds2}">
<sql:param value="01"/>
</sql:query>
<table border="1">
<c:forEach var="row" items="${query2.rows}">
<tr>
<td>Name: <c:out value="${row.id}"/></td>
<td>mobile: <c:out value="${row.power}"/></td>
</tr>
</c:forEach>
</table>
</body>
</html>