如何使用 SQL JSP 标准库

转载 2006年05月28日 14:21:00

完成本方法文档的学习后您应该能够使用 SQL JSTL 来:

  • 查询 Oracle 数据库。

  • 向 Oracle 数据库中插入一行数据

  • 更新一列数据

简介

本文档演示如何使用 SQL JSP 标准标记库 (JSTL) 访问 Oracle 数据库。JSTL 的目的是为那些不熟悉或不适应脚本语言(如 Java)的 JSP 页面作者提供方便。过去,我们在 JSP 页面中使用 scriptlet 来处理动态数据。而 JSTL 的目的就是使用 JSTL 标记来代替 scriptlet。在本方法文档中,我们将学习如何使用 JSTL 来访问数据库。http://java.sun.com/jstl/sql 页面上提供了所有的 SQL 标记。

软件需求

  • Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。

  • JDK1.2.x 或更高版本。可从此处下载。

  • Oracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载

  • JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation

使用数据库 JSTL 标记

JSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>

准备数据库

对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。
下面的代码展示了如何创建一个数据源。

<sql:setDataSource
var="example"
driver="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:ORCL"
user="scott"
password="tiger"
/>

<sql:setDataSource> 标签有如下属性:

属性 说明 是否需要 默认
driver 需要注册的 JDBC 驱动程序类的名称
url 用于数据库连接的 JDBC URL
user 数据库用户名
password 数据库密码
dataSource 预先准备的数据库(字符串或
javax.sql.DataSource
var 代表数据库的变量名 设置为默认
scope 代表数据库的变量的作用域 页面

查询与更新

JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param><sql:dateParam> 可以填充到这些占位符中。

从数据库查询

<sql:query var="deejays">
SELECT * FROM mytable
</sql:query>
<%-- Get the column names for the header of the table --%> <c:forEach var="columnName" items="${deejays.columnNames}">
<th><c:out value="${columnName}"/></th>
</c:forEach> <%-- Get the value of each column while iterating over rows --%> <c:forEach var="row" items="${deejays.rows}">
<tr>
<c:forEach var="column" items="${row}">
<td><c:out value="${column.value}"/></td>
</c:forEach>
</tr>
</c:forEach>

<sql:query> 标记可用来查询数据库,核心标记 <c:forEach> 用于遍历结果集。<c:forEach> 标记读取查询中的每一行。您可以使用列名来获取行中每一列的值。核心标记 <c:out> 用于输出值。

更新表中的一列

<sql:update var="updateCount" dataSource="${example}">
  UPDATE mytable SET name=? 

    <sql:param value="Scott Tiger"/> WHERE nameid=1
</sql:update>

<sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。

您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。

安装

为了运行此代码,您需要配置 OC4J 以使用 JSTL。

  • 把从 Apache 下载的文件 jakarta-taglibs-standard-1.0.zip 解压缩到一个目录中,比如 D:/mydir
  • 把目录 D:/mydir/jakarta-taglibs/jstl-1.0/lib 中的文件复制到 <J2EE_HOME>/default-web-app/WEB-INF/lib。如果不存在目录 <J2EE_HOME>/default-web-app/WEB-INF/lib,则创建它。
  • 把文件 JstlSql.jsp 复制到目录 <J2EE_HOME>/default-web-app/examples/jsp
  • 从 http://<host-name>:<port>/examples/jsp/JstlSql.jsp 运行它

参考

总结

在阅读完本文档后,您应该已经理解了如何使用 JSTL 标记来访问数据库。

相关文章推荐

Golang1.7.4标准库sql使用

package mainimport ( "database/sql" "errors" "fmt" "net" "sync/atomic" "...

JSP标准标准库JSTL

  • 2009-10-17 14:04
  • 357KB
  • 下载

C标准库说明及使用

  • 2013-06-25 16:49
  • 48.85MB
  • 下载

Python标准库urllib2的使用细节

Python 标准库 urllib2 的使用细节 此文貌似也是某博主转载的吧,转自道可叨。 转载自道可叨|Python标准库urllib2的使用细节(http://zhuoqiang.me/pytho...

[C/C++标准库]_[初级]_[使用模板删除字符串前后空格((w)string space)]

1. C++没有提供删除std::(w)string的前后空格的函数,比如TrimSpace. 2. 很多库都提供, 但是为了移植代码方便,最好还是能用标准库解决就用标准库.

想快速搞定字符串类题目?使用C++的标准库string类

标准库类型string表示可变长的字符序列,
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)