如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。 9 {) ^$ j) r' T" a* b1 L/ g! k
1 w) ^; K1 W2 f" `% E0 E' i
JDK1.2.x 或更高版本。可从此处下载。) X# A( `9 ?& Y4 E! h/ M2 S
; _; J8 B2 j' a& I# m0 v4 [2 |
# D& D) f5 |, M. u7 T: COracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记4 x( D- n% X( l4 M
JSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。
, h, p) d2 }* l6 A% A" P( }<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>, Y* e: E T4 h0 N! T x! q: q
9 \0 K" Y/ Y0 V2 o准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。
3 S% Q: c+ h- K下面的代码展示了如何创建一个数据源。
+ l( Z9 j& K8 w. A9 Y- T<sql:setDataSource
# Y" v0 z8 g- m; l; o. [ var="example"* C; \' @+ j( a8 l% q! m3 i7 m
driver="oracle.jdbc.driver.OracleDriver"
# r2 ^5 R9 A4 ^0 o" n( c# X url="jdbc racle:thin localhost:1521:ORCL"
/ V% K J1 q0 y2 l9 ?) @; k3 z6 R ^ user="scott"( u. W1 F% M* q2 [9 {: h
password="tiger"7 U! X7 p( {9 N3 }% e
/> |
| <sql:setDataSource> 标签有如下属性:
8 \5 `( `* |" O* O属性 | 说明 | 是否需要 | 默认 | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | url | 用于数据库连接的 JDBC URL | 不 | 无 | user | 数据库用户名 | 不 | 无 | password | 数据库密码 | 不 | 无 | dataSource | 预先准备的数据库(字符串或
/ }" Z C5 z7 m% T4 A$ Z0 {# Pjavax.sql.DataSource) | 不 | 无 | var | 代表数据库的变量名 | 不 | 设置为默认 | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。, b: h) X$ e5 q! K+ R1 f+ L, H/ y) r
" w& Q Z: J, H! k+ R从数据库查询 <sql:query var="deejays">/ g! p v" }1 h# Y3 n0 l
SELECT * FROM mytable4 X3 A. l l) N% @9 o- D
</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}">
. a# d! N) h- W <th><c ut value="${columnName}"/></th>8 ]7 [* M$ r6 V* P( [7 i$ j
</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">+ q& [8 U1 R* V( @2 B/ t, q. p
<tr>, p% h0 f8 P8 h. p/ h: k
<c:forEach var="column" items="${row}">
6 m0 N& J1 _4 m5 P# ]" l# F <td><c ut value="${column.value}"/></td># M0 f& ?9 f6 `& U9 n. o' M: s
</c:forEach>) L+ x+ a" b8 @- F4 i8 a
</tr>5 c9 Y# y6 C6 N2 l/ [/ ]/ [( L
</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( P5 u( z. }5 }7 @: F4 J3 [9 t
</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。7 W& d% A3 Q4 n
您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。 d* w2 @ d/ z( J- e! i+ T. i
安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。$ W. U/ \' w( u. L% e
- 把从 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 运行它
|