JSTL詳解(六)

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

           

          <sql:setDataSource>

          <sql:query>

          <sql:update>

          <sql:transaction>

          <sql:param>

           

           

          <sql:setDataSource>

          語法:<sql:setDataSource>用來設置數(shù)據(jù)源,可以通過scope設置使用范圍,如page、application、session等。有兩種方式可以設置數(shù)據(jù)源,一種是直接使用在web中配置的數(shù)據(jù)源,只要指定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">

          創(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名稱空間中獲得一個數(shù)據(jù)源。<br>

          <sql:setDataSource

            var="ds2"

            dataSource="jdbc/ds2"

          />

          </body>

          </html>

           

           

          <sql:query>

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

          語法:a、沒有body

                   <sql:query sql=”sqlQuery”

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

                   [dataSource=”dataSourceName”]

                   [maxRows=”maxRows”]

                   [startRow=”startRow”] />

                b、有一個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) 評論(0)  編輯  收藏 所屬分類: 組件 標簽使用

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

          導航

          統(tǒng)計

          留言簿

          隨筆分類(1)

          文章分類(52)

          好友 小山的博客

          最新隨筆

          最新評論

          主站蜘蛛池模板: 北辰区| 延津县| 科尔| 额敏县| 徐水县| 颍上县| 卢龙县| 乌兰察布市| 沁源县| 萍乡市| 阆中市| 平远县| 长寿区| 日照市| 韶关市| 大余县| 林甸县| 二手房| 龙里县| 临湘市| 商都县| 万山特区| 惠东县| 邯郸市| 澄迈县| 任丘市| 淄博市| 八宿县| 肃宁县| 洪湖市| 永仁县| 吕梁市| 临湘市| 德钦县| 星座| 民乐县| 宝山区| 界首市| 安阳县| 合肥市| 玉环县|