如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。 5 Q" Y/ v* y6 t1 n" m& ~% }- _
9 `5 L0 k$ J: i, kJDK1.2.x 或更高版本。可从此处下载。; \/ j2 ?$ X0 [ O/ h& G
0 s; U+ J1 T. s% J
e( ^( H1 u8 e: p# kOracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记
" |2 _3 ]9 q( I& h: X& X+ mJSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。
* D( [$ s3 }: g0 p0 a6 r5 _( ]0 z5 `<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
8 D1 s) q0 i/ a* j3 a9 ?1 n5 L9 Q1 L3 ~( C8 l
准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。
! X1 |5 ~$ u6 _下面的代码展示了如何创建一个数据源。
E$ X6 b6 C$ ?% z% y! a4 ?<sql:setDataSource7 B' w7 c/ S0 E4 `" C1 h9 g
var="example"( N) Z: J/ d. {: e
driver="oracle.jdbc.driver.OracleDriver"7 {. |% ^, e/ C7 ~
url="jdbc racle:thin localhost:1521:ORCL"
9 m8 I& p4 @, ]5 A$ q2 y1 N+ [- v user="scott"
; @6 n; ^1 ^" n) \1 U* q# f: S; { password="tiger"( c( z9 p% Y; h
/> |
| <sql:setDataSource> 标签有如下属性:- o5 J6 O& b3 L# H% x
| 属性 | 说明 | 是否需要 | 默认 | | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | | url | 用于数据库连接的 JDBC URL | 不 | 无 | | user | 数据库用户名 | 不 | 无 | | password | 数据库密码 | 不 | 无 | | dataSource | 预先准备的数据库(字符串或" s! s; m @/ L
javax.sql.DataSource) | 不 | 无 | | var | 代表数据库的变量名 | 不 | 设置为默认 | | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。/ |! v; L, H5 d/ u. ^# U8 X) W
! P# `; b1 R+ o8 a: z从数据库查询 <sql:query var="deejays">
Z3 l1 ~5 P9 f& o1 W+ k& n SELECT * FROM mytable5 @& h3 P9 t c' i
</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}"> K3 [4 G- k: w4 o1 P3 d
<th><c ut value="${columnName}"/></th>3 A7 P1 s6 b% G2 |/ x7 k. [
</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">+ [. Q5 }( I" U% J* X
<tr>
% n& p- O2 D8 |: q <c:forEach var="column" items="${row}">
( U0 N, n" T8 L6 E <td><c ut value="${column.value}"/></td>
6 Q# Y) E9 w& ~! l& A. C </c:forEach>
4 B$ D! G* `; r. s3 M2 ~- [ </tr>
: _" X; F. Y0 l: K</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
, b2 c' f# K0 p$ e' F</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。
; w# f- K) [: N! I' X7 _7 w8 }您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。
- W: M% A) o3 {; z9 _安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。
: Y- X! X: U! I C% \5 f: l# R- 把从 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 运行它
|