<sql:update>
作用:主要是執行插入、更新和刪除操作的標簽。另外,還有一些沒有返回結果集的sql操作也可以使用這個標簽。比如
create table tableName(id int….);
drop table tableName
grant tableName 等等。。
語法:a、沒有body的情況
<sql:update sql=”sqlUpdate”
[dataSource=”dataSource”]
[var=”varName”]
[scope=”{page|session|request|application}”]/>
b、有body ,并且在body中指定參數
<sql:update sql=”sqlUpdate”
[dataSource=”dataSource”]
[var=”varName”]
[scope=”{page|session|request|application}”] >
<sql:param> actions
</sql:update>
c、有body,在body中指定sql語句和可選的參數
<sql:update sql=”sqlUpdate”
[dataSource=”dataSource”]
[var=”varName”]
[scope=”{page|session|request|application}”] >
Update statement
<sql:param> actions
</sql:update>
舉例:sql_update.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:的使用</title>
</head>
<sql:setDataSource
var="ds2"
dataSource="jdbc/ch12"
/>
更新記錄值1<hr>
<sql:update var="update1" dataSource="${ds2}">
update sql_test set power='low' where id=01
</sql:update>
第2種更新:創建表<hr>
<sql:update var="update4" sql="create table sql_temp_901(test varchar(20))" dataSource="${ds2}"/>
第3種更新:增加記錄
<sql:update var="update5" sql="insert into sql_temp_901 values('hellking')" dataSource="${ds2}"/>
第4種更新:刪除記錄<hr>
<sql:update var="update6" sql="delete from sql_temp_901 where test='hellking'" dataSource="${ds2}"/>
第5種更新:刪除表<hr>
<sql:update var="update7" sql="drop table sql_temp_901" dataSource="${ds2}"/>
</body>
</html>
<sql:transaction>
作用:用語事務處理,它為<sql:query>和<sql:update>建立事務處理上下文,并且提供相同的數據源。
語法:<sql:transation [dataSource=”dataSourceName”]>
[isolation=”isolationLevel”]>
<sql:query> and <sql:update> statement
</sql:transation>
isolationLevel ::=”read_committed”
|”read_uncommitted”
|”repeatable_read”
|”serializable”
注意:DataSource屬性和其他標簽的DataSource屬性一樣,isolactionlevel屬性指定事務隔離的級別,如果沒有指定它的值,那么就使用自己配置的DataSource事務隔離級別。而且,嵌套在里面的<sql:query> 和 <sql:update>標簽不能再指定其他的數據源。<sql:transaction>
是數據庫封裝的輕量級事務處理,如果你需要復雜的事務處理或者分布試處理,它就不適合。
舉例:sql_transaction.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:transaction的使用</title>
</head>
<sql:setDataSource
var="ds2"
dataSource="jdbc/ch12"
/>
<h2>使用事務處理方式創建一個表:</h2>
<sql:transaction dataSource="${ds2}">
<sql:update var="test_temp902">
create table test_temp902 (
id int primary key,
name varchar(80)
)
</sql:update>
<sql:update sql="insert into test_temp902 values(01,'wyy')"/>
<sql:update sql="update sql_test set power='wyy' where id=01"/>
</sql:transaction>
</body>
</html>
<sql:param>
作用:設置sql語句中“?”表示的占位符號的值。
語法:a、沒有body,使用value指定。
<sql:param value=”value”/>
b、在body中指定
<sql:param>
參數值
</sql:param>
舉例:sql_param.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:param的使用</title>
</head>
<sql:setDataSource
var="example"
dataSource="jdbc/ch12"
/>
執行更新操作:<hr>
<sql:update var="update2" sql="update sql_test set power=? where id=?" dataSource="${example}">
<sql:param value="high"/>
<sql:param value="01"/>
</sql:update>
</body>
</html>