如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。
) y5 Q& @% q7 g2 D! p# F9 n2 L2 ]& D' J0 g7 J* F8 t1 M" r1 I6 m4 r
JDK1.2.x 或更高版本。可从此处下载。
) P2 a' W8 t7 N' c) U% D* _' |7 I0 K; f, H" j8 z. M z; e6 w- k2 Q2 H
]# ~- ~2 _5 `# e; q3 ~- s+ Y
Oracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记2 D1 a; n- T- K6 @( s. S, c4 O2 Q
JSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。) ~2 i/ p+ q7 ?" V4 ]2 W9 g8 X
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>" T0 n# f5 B6 ?
4 V+ t& l, t& p; `3 L
准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。
1 ~- Z7 s" N7 ~ T6 W下面的代码展示了如何创建一个数据源。3 G' M; @- X$ @1 ?
<sql:setDataSource: k0 w) ?$ T% H1 z4 ~ K3 U$ I
var="example"
0 l3 C2 }- u" U8 \3 j" f3 L driver="oracle.jdbc.driver.OracleDriver"' {9 L8 Y- Y7 [4 l5 v- |; h, E2 m
url="jdbcracle:thinlocalhost:1521:ORCL"
i& c/ ^/ E. g* @ user="scott" u) Q ~5 V4 R# a3 s; H( G H; [
password="tiger"* v9 r4 l6 F1 c2 \, M$ K
/> |
| <sql:setDataSource> 标签有如下属性:
, f2 p/ V( U, B* H3 L# H* l$ W. w属性 | 说明 | 是否需要 | 默认 | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | url | 用于数据库连接的 JDBC URL | 不 | 无 | user | 数据库用户名 | 不 | 无 | password | 数据库密码 | 不 | 无 | dataSource | 预先准备的数据库(字符串或
2 O! B; A" ~) Y% y' M" cjavax.sql.DataSource) | 不 | 无 | var | 代表数据库的变量名 | 不 | 设置为默认 | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。) D- X% t$ Y, C6 W2 N
r% ?9 k B! v* b# i3 P, ~
从数据库查询 <sql:query var="deejays">6 R9 e, w; h* k* k! v; u
SELECT * FROM mytable- F; O2 t4 J+ T
</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}">
2 D4 j/ f* I- F# I <th><cut value="${columnName}"/></th>
8 j5 p+ a% q' d3 [( }+ m& g</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">6 f$ R' h7 v, w% L& s3 I
<tr>
; m( n6 A' Y) I4 ?5 W! ] <c:forEach var="column" items="${row}">
- |1 r8 f2 Y2 u( r6 F; `7 y7 m <td><cut value="${column.value}"/></td>
7 J; P7 J: b9 ^% g6 {" E </c:forEach>
3 a9 V. S" \/ w. S# ]+ l# ~4 Z </tr>: Z- J/ h1 `5 {$ _0 N6 C2 m
</c:forEach> |
|
<sql:query> 标记可用来查询数据库,核心标记 <c:forEach> 用于遍历结果集。<c:forEach> 标记读取查询中的每一行。您可以使用列名来获取行中每一列的值。核心标记 <cut> 用于输出值。 更新表中的一列 <sql:update var="updateCount" dataSource="${example}"> UPDATE mytable SET name=? <sql:param value="Scott Tiger"/> WHERE nameid=1
- r: }3 C, q# b2 x/ \</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。
% n2 _( M& ?: a3 z您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。
# d0 E. y+ G0 [2 d6 X' t安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。
# r2 c ~' [- ?4 e# l2 e; T- 把从 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 运行它
|