JSTL标签(七)

 JSTL详解 (七):SQL相关的标签(二)

<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>

 

你可能感兴趣的:(java,jstl)