如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。 3 i/ N2 g% j8 \8 Q2 d" w
3 ^" \1 M! I4 H# T. p: X5 C$ Z
JDK1.2.x 或更高版本。可从此处下载。
+ w1 o3 ?; J$ [! P. a) Z$ [+ T, H5 ^1 W# c% p% y
& D1 S4 n( {4 A. i/ H
Oracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记
* F1 S( D4 h" |, l& OJSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。8 Y+ Z6 l. l3 G! K
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
, A$ U/ T5 d7 i" r0 j8 @$ Z
$ Z& s+ @7 I _( c准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。
2 Q: \/ w" S! R: Z' F) ^下面的代码展示了如何创建一个数据源。
6 j! D8 U2 f+ b<sql:setDataSource0 T$ `/ l- _6 {: ~7 ~
var="example"
" ^6 H" r: E* W7 K driver="oracle.jdbc.driver.OracleDriver"5 T- N1 h$ H2 p$ x9 B
url="jdbc racle:thin localhost:1521:ORCL"
' Z% [5 F) }; Q5 L1 f user="scott"
" j9 Z: t4 N# D" n3 M0 N* }1 D r( e password="tiger"1 R; c* C0 P" a) t$ {
/> |
| <sql:setDataSource> 标签有如下属性:) v0 C7 p ~0 P+ J( y# ^' l
属性 | 说明 | 是否需要 | 默认 | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | url | 用于数据库连接的 JDBC URL | 不 | 无 | user | 数据库用户名 | 不 | 无 | password | 数据库密码 | 不 | 无 | dataSource | 预先准备的数据库(字符串或5 e( k; h8 h% {/ M- J" ~4 P# a
javax.sql.DataSource) | 不 | 无 | var | 代表数据库的变量名 | 不 | 设置为默认 | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。8 B& e! Y. [! d9 H
9 v# F" k/ p9 ?- j% O从数据库查询 <sql:query var="deejays">
2 m9 V$ A+ m a7 g! S q! r SELECT * FROM mytable* Q9 P: [' @5 K, z' W$ a
</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}">
) i& Y! \) \; R6 w <th><c ut value="${columnName}"/></th>
; z/ b# c% A! M9 Q* g</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">0 j$ ` o, e2 R& |9 u
<tr>% `, o% S/ l" Y' ? e! p# p
<c:forEach var="column" items="${row}">2 q1 J# y6 `' W, x# Y- M" G' E# b. Y6 h
<td><c ut value="${column.value}"/></td>* }% s0 G0 A* m, u; a
</c:forEach>" T/ @6 F+ E7 n5 D9 b
</tr>
( u% s. J9 e* U. G& P* K1 s! a</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=11 b0 y, V6 p: T+ ^# E, s
</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。
, }( r+ t4 L. M5 X, ~2 P您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。
3 u7 j' T4 S; I4 d( K安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。
7 W# J7 E7 s+ o) d9 ?3 C/ P- 把从 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 运行它
|