JSTL详解(六)

今天,我来讲解下一些很重要的jstl标签,如果运用得当,可以大大的简化数据库的操作,减少代码量。首先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>


posted on 2007-06-13 10:34 chenguo 阅读(202) 评论(0)  编辑  收藏 所属分类: 组件 标签使用


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

留言簿

随笔分类(1)

文章分类(52)

好友 小山的博客

最新随笔

最新评论