JSP页面引入:<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
1.用于设置数据源的<sql:setDataSource>标签
2.用于查询的<sql:query>标签
3.用于更新的<sql:update>标签
4.用于事务处理的<sql:transaction>标签
<sql:transaction>标签用于数据库的事务处理,在该标签体内可以使用<sql:update>标签和<sql:query>标签,而<sql:transaction>标签的事务管理将作用于它们之上。
<sql:transaction>标签对于事务处理定义了read_committed、read_uncommitted、repeatable_read、serializable4个隔离级别。
5.用于事务处理的<sql:param>、<sql:dateParam>标签
<sql:param>标签传递除java.util.Date类型以外的所有相融参数
<sql:dateParam>标签则指定必须传递java.util.Date类型的参数
6.示例
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<html>
<head>
<title>JSTL SQL标签</title>
</head>
<body>
<sql:setDataSource
driver="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:test"
user="test"
password="test"
var="testDs"
/>
<sql:query var="result" dataSource="${testDs}" maxRows="10">
select id,code,mobile,parentId from mobiles where mobile='13800000000'
</sql:query>
<c:forEach items="${result.rows}" var="item">
<c:out value="${item.id }"></c:out>,
<c:out value="${item.code }"></c:out>,
${item.mobile },
${item.parentId }
<br/>
</c:forEach>
<hr/>
<c:catch var="errors">
<sql:update dataSource="${testDs}">
update mobiles set parentId='2' where mobile='13800000000'
</sql:update>
<sql:update dataSource="${testDs}">
update mobiles set id='' where mobile='13800000000'
</sql:update>
</c:catch>
<c:out value="${errors }"></c:out>
<sql:query var="result2" dataSource="${testDs}" maxRows="10">
select id,code,mobile,parentId from mobiles where mobile='13800000000'
</sql:query>
<c:forEach items="${result2.rows}" var="item">
<c:out value="${item.id }"></c:out>,
<c:out value="${item.code }"></c:out>,
${item.mobile },
${item.parentId }
<br/>
</c:forEach>
<hr/>
<c:catch var="errors">
<sql:transaction dataSource="${testDs }">
<sql:update>
update mobiles set parentId='3' where mobile='13800000000'
</sql:update>
<sql:update>
update mobiles set id='' where mobile='13800000000'
</sql:update>
</sql:transaction>
</c:catch>
<c:out value="${errors }"></c:out>
<fmt:parseDate var="date" value="20131011" pattern="yyyyMMdd"></fmt:parseDate>
<sql:query var="result3" dataSource="${testDs}" maxRows="10">
select id,code,mobile,parentId from mobiles where mobile=?
and createtime>=?
<sql:param>13800000000</sql:param>
<sql:dateParam value="${date }"/>
</sql:query>
<c:forEach items="${result3.rows}" var="item">
<c:out value="${item.id }"></c:out>,
<c:out value="${item.code }"></c:out>,
${item.mobile },
${item.parentId }
<br/>
</c:forEach>
</body>
</html>