JSTL详解(六)

来源:互联网 发布:快递数据 编辑:程序博客网 时间:2024/04/30 10:05

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

 

sql标签可以实现包括查询、更新、事务处理和设置数据源等强大的功能。 

<sql:setDataSource>

<sql:query>

<sql:update>

<sql:transaction>

<sql:param>

 

 

<sql:setDataSource>

语法:<sql:setDataSource>用来设置数据源,可以通过scope设置使用范围,如page、application、session等。有两种方式可以设置数据源,一种是直接使用在web中配置的数据源,只要指定jndi名就可以了(这个就不要我多讲了吧,呵呵),第二种是指定所有的连接属性。

               <sql:setDataSource

               {dataSource=”dataSourceName” |  url=”jdbcurl”

               [driver=”driverClassName”]

               [user=”userName”]

               [password=”password”]

               [var=”varName”]

               [scope=”{page|session|request|application}”]/>

举例:sql_datasource.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<html>

<head>

  <title>JSTL:<sql:setDataSource>的使用</title>

</head>

<body bgcolor="#FFFFFF">

创建普通的数据源:<br>

<sql:setDataSource

  var="ds1"

  driver="com.mysql.jdbc.Driver"

  url="jdbc:mysql://localhost:3306/jstlTest"

  user="jstl"

  password="jstl"

/>

从jndi名称空间中获得一个数据源。<br>

<sql:setDataSource

  var="ds2"

  dataSource="jdbc/ds2"

/>

</body>

</html>

 

 

<sql:query>

作用:不用说都知道了,数据库操作中最频繁的查询。

语法:a、没有body

         <sql:query sql=”sqlQuery”

         Var=”varName” [scope=”{page|session|request|application}”]

         [dataSource=”dataSourceName”]

         [maxRows=”maxRows”]

         [startRow=”startRow”] />

      b、有一个body ,并在body 中指定了查询需要的参数

         <sql:query sql=”sqlQuery”

         Var=”varName” [scope=”{page|session|request|application}”]

         [dataSource=”dataSourceName”]

         [maxRows=”maxRows”]

         [startRow=”startRow”] >

         <sql:param> actions

         </sql:query>

      c、有body,并且可以指定可选的参数(< sql:param >在后面讲述)

         <sql:query sql=”sqlQuery”

         Var=”varName” [scope=”{page|session|request|application}”]

         [dataSource=”dataSourceName”]

         [maxRows=”maxRows”]

         [startRow=”startRow”] >

         query

         optional<sql:param> actions

         </sql:query>

 

举例:sql_query.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:query>的使用</title>

</head>

<body bgcolor="#FFFFFF">

<sql:setDataSource

  var="ds2"

  dataSource="jdbc/ch12"

/>

第一种查询:<hr>

<sql:query var="query" dataSource="${ds2}">

    SELECT * FROM sql_test

</sql:query>

<table border="1">

  <c:forEach var="row" items="${query.rows}">

  <tr>

    <td>Name: <c:out value="${row.id}"/></td>

    <td>mobile: <c:out value="${row.power}"/></td>

  </tr>

  </c:forEach>

</table>

<hr>

第2种查询:<hr>

<sql:query var="query2" sql="SELECT * FROM sql_test where id=?" dataSource="${ds2}">

   <sql:param value="01"/>

</sql:query>

<table border="1">

  <c:forEach var="row" items="${query2.rows}">

  <tr>

    <td>Name: <c:out value="${row.id}"/></td>

    <td>mobile: <c:out value="${row.power}"/></td>

  </tr>

  </c:forEach>

</table>

 

</body>

</html>