如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。 + R+ z* A4 u3 |3 D% v4 a
8 e) O, K8 q: ~, c- C. k, S- ~) a/ e! h3 G
JDK1.2.x 或更高版本。可从此处下载。5 V5 {( _3 U: u: `7 o& T
9 ^+ K# q, _/ X- C
6 n' Y* v+ }# X, Z9 T$ g) sOracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记. Z. T1 A9 Q0 `9 N* G7 r1 v
JSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。
. H. E3 U) W& p6 R/ N1 h. C<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>7 Y* f$ @7 O2 ?* w" J/ Y
6 j: t8 Q) T/ N! r
准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。6 m" g! `5 p [5 x7 O+ ?1 v. V5 w
下面的代码展示了如何创建一个数据源。" |( |1 r6 |; A0 \$ o
<sql:setDataSource7 @. B1 E9 U4 I* `: M1 [: \' N
var="example"
6 g* j6 Q5 L. p% t' {, M' h& r driver="oracle.jdbc.driver.OracleDriver"1 U, a! `! z0 ]+ r
url="jdbc racle:thin localhost:1521:ORCL"$ Z' U6 A e U# s
user="scott"6 W# ]. G# i8 e3 _
password="tiger"0 v: I5 M0 ^( p6 ?2 d
/> |
| <sql:setDataSource> 标签有如下属性:
. A Y+ |7 t8 M! E# u; |属性 | 说明 | 是否需要 | 默认 | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | url | 用于数据库连接的 JDBC URL | 不 | 无 | user | 数据库用户名 | 不 | 无 | password | 数据库密码 | 不 | 无 | dataSource | 预先准备的数据库(字符串或
4 r1 t! U* d2 Z& D* p" O+ Ejavax.sql.DataSource) | 不 | 无 | var | 代表数据库的变量名 | 不 | 设置为默认 | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。/ @3 Z; r! s& n1 z% |3 L: b
0 E- ?/ j: |/ h# E, Q% [从数据库查询 <sql:query var="deejays">0 e# h/ w J2 r8 T" Q
SELECT * FROM mytable2 N8 k+ h/ C0 u
</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}">3 P; G! z6 M; @% B8 P$ l
<th><c ut value="${columnName}"/></th>
% ?- Y8 S2 g2 ]1 P</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">5 \* u! R2 B1 k- }* C
<tr>3 h9 w- j% v$ `8 z
<c:forEach var="column" items="${row}">$ Q9 @# R" n) N$ w9 L- t
<td><c ut value="${column.value}"/></td>
6 } V# {2 b- H8 n( b6 H# U/ ^7 Y </c:forEach>
( w1 j4 J5 O* v A0 | </tr>
/ t1 F7 n K: v0 i& g</c:forEach> |
|
<sql:query> 标记可用来查询数据库,核心标记 <c:forEach> 用于遍历结果集。<c:forEach> 标记读取查询中的每一行。您可以使用列名来获取行中每一列的值。核心标记 <c ut> 用于输出值。 更新表中的一列 <sql:update var="updateCount" dataSource="${example}"> UPDATE mytable SET name=? <sql:param value="Scott Tiger"/> WHERE nameid=1" H% r5 h% R1 G p
</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。. s' @$ u a) ]' ]1 s8 V1 r
您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。
. r" z5 ?8 q4 w安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。
! f3 u+ P' X- ]3 ]- 把从 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 运行它
|