JSTL-SQL标签

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>

猜你喜欢

转载自xujava.iteye.com/blog/2025964