如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。
: a1 |- A5 P( v( ?- p3 A9 Z( j+ X, h Q
JDK1.2.x 或更高版本。可从此处下载。7 S9 A l1 k# c) v
R9 [8 |5 S) R" |, ~7 A5 \! ^. p* f) [/ I/ i+ v) G' n. T
Oracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记- Q3 h" j! T; m! I9 J
JSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。
( f. i/ V6 h) b& l) I G# H<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
( I4 K% q! l1 @5 A6 o0 b* { A+ r7 w# ]' e! h& H
准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。9 r- V1 ]4 u: ]( R
下面的代码展示了如何创建一个数据源。 g+ [! X$ ?# B. l7 v
<sql:setDataSource4 s' I0 ~6 v% U- L# f3 U% k" f
var="example"
v1 I" C1 \+ L3 E driver="oracle.jdbc.driver.OracleDriver"
& o+ J8 p, A6 C8 D \ url="jdbc racle:thin localhost:1521:ORCL"
0 ^0 [9 v t9 j. @/ g! T user="scott"
6 ~/ J: Z7 T% a: u+ i5 y# T; { password="tiger"' ?3 k7 s s6 Q. k# `
/> |
| <sql:setDataSource> 标签有如下属性:
# f& o* z3 f: T. g- v属性 | 说明 | 是否需要 | 默认 | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | url | 用于数据库连接的 JDBC URL | 不 | 无 | user | 数据库用户名 | 不 | 无 | password | 数据库密码 | 不 | 无 | dataSource | 预先准备的数据库(字符串或
: i1 u; T' P$ k" o; j: b4 v1 Z* ]javax.sql.DataSource) | 不 | 无 | var | 代表数据库的变量名 | 不 | 设置为默认 | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。
/ N4 K P! p# c' O: ^ H. J4 X5 q
! @8 P6 Q/ ?( X" V从数据库查询 <sql:query var="deejays">) A- A6 B2 G* U3 n& \+ ]5 @- f8 P
SELECT * FROM mytable
8 l" t% m1 k# \- Y% D; R8 x</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}">* u2 _/ Q5 W9 B# D' `0 e! ]
<th><c ut value="${columnName}"/></th>
+ w( a) O/ N0 z- p</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">
* e8 S" w( W/ \2 J: K8 Q <tr>
, x" ~" P8 [. p: `9 l- K <c:forEach var="column" items="${row}">
3 f+ }, I5 L0 C/ [1 J& M9 |+ w1 v% y9 l <td><c ut value="${column.value}"/></td>9 M. j, o# R# q
</c:forEach>( y, |. V0 A% p* \5 d8 U
</tr>
4 _$ i( z5 q9 Q" Y</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
& E! g- @, [3 @! L/ T' G</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。
- l. e. @! g9 H6 _( K' ^1 p您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。 t9 t4 ?. T/ ?7 i
安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。
9 t; y# ~$ R2 O- 把从 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 运行它
|