JSTL詳解(六)

          今天,我來(lái)講解下一些很重要的jstl標(biāo)簽,如果運(yùn)用得當(dāng),可以大大的簡(jiǎn)化數(shù)據(jù)庫(kù)的操作,減少代碼量。首先sql標(biāo)簽可以實(shí)現(xiàn)包括查詢、更新、事務(wù)處理和設(shè)置數(shù)據(jù)源等強(qiáng)大的功能。下面分別講述。

           

          <sql:setDataSource>

          <sql:query>

          <sql:update>

          <sql:transaction>

          <sql:param>

           

           

          <sql:setDataSource>

          語(yǔ)法:<sql:setDataSource>用來(lái)設(shè)置數(shù)據(jù)源,可以通過(guò)scope設(shè)置使用范圍,如page、application、session等。有兩種方式可以設(shè)置數(shù)據(jù)源,一種是直接使用在web中配置的數(shù)據(jù)源,只要指定jndi名就可以了(這個(gè)就不要我多講了吧,呵呵),第二種是指定所有的連接屬性。

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

          創(chuàng)建普通的數(shù)據(jù)源:<br>

          <sql:setDataSource

            var="ds1"

            driver="com.mysql.jdbc.Driver"

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

            user="jstl"

            password="jstl"

          />

          從jndi名稱空間中獲得一個(gè)數(shù)據(jù)源。<br>

          <sql:setDataSource

            var="ds2"

            dataSource="jdbc/ds2"

          />

          </body>

          </html>

           

           

          <sql:query>

          作用:不用說(shuō)都知道了,數(shù)據(jù)庫(kù)操作中最頻繁的查詢。

          語(yǔ)法:a、沒(méi)有body

                   <sql:query sql=”sqlQuery”

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

                   [dataSource=”dataSourceName”]

                   [maxRows=”maxRows”]

                   [startRow=”startRow”] />

                b、有一個(gè)body ,并在body 中指定了查詢需要的參數(shù)

                   <sql:query sql=”sqlQuery”

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

                   [dataSource=”dataSourceName”]

                   [maxRows=”maxRows”]

                   [startRow=”startRow”] >

                   <sql:param> actions

                   </sql:query>

                c、有body,并且可以指定可選的參數(shù)(< 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>


          posted on 2007-06-13 10:34 chenguo 閱讀(209) 評(píng)論(0)  編輯  收藏 所屬分類: 組件 標(biāo)簽使用

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          留言簿

          隨筆分類(1)

          文章分類(52)

          好友 小山的博客

          最新隨筆

          最新評(píng)論

          主站蜘蛛池模板: 石首市| 闻喜县| 德昌县| 乌兰浩特市| 西平县| 陆川县| 灵石县| 天峨县| 白河县| 称多县| 连南| 津南区| 河间市| 方正县| 怀仁县| 左贡县| 保靖县| 光山县| 仪征市| 台南县| 改则县| 神农架林区| 和田县| 方城县| 辉南县| 禄丰县| 阿拉善右旗| 拜泉县| 临澧县| 历史| 许昌县| 旬邑县| 斗六市| 阿拉善左旗| 隆回县| 那坡县| 红原县| 射洪县| 屏山县| 开阳县| 万州区|