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>