如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。 3 D5 W* c O: `7 K
- B6 T! B3 O d
JDK1.2.x 或更高版本。可从此处下载。. D$ q# C. B5 w' X; [
! U! |. q8 i1 t# n
3 q" ]/ v2 P$ g. [0 k7 M J) t6 dOracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记
/ i, o q/ u3 @# ^; F! K; GJSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。
- |7 R6 s2 x; c' I# R<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>% `* Z7 d( O4 o- ~! _. `
! |* R0 P6 D- O: P准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。
: l8 ?% l) u4 }" t. n* _) U9 G( l下面的代码展示了如何创建一个数据源。* N! }- f+ e$ Y
<sql:setDataSource
. n+ a( w1 k$ y0 A% N. X) ^ var="example"9 d/ D7 v. |" c! j2 M# _
driver="oracle.jdbc.driver.OracleDriver"
; ]" t3 }, t2 t5 H url="jdbc racle:thin localhost:1521:ORCL"$ Q# x4 [" u$ b* ?8 |
user="scott"2 Q' `; b+ i! p7 z! I" T
password="tiger"& i7 Z, A( ~2 A. o& \
/> |
| <sql:setDataSource> 标签有如下属性:! g4 N: A6 Y# o4 C- }; E1 @
属性 | 说明 | 是否需要 | 默认 | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | url | 用于数据库连接的 JDBC URL | 不 | 无 | user | 数据库用户名 | 不 | 无 | password | 数据库密码 | 不 | 无 | dataSource | 预先准备的数据库(字符串或; c+ ~. C0 j/ \
javax.sql.DataSource) | 不 | 无 | var | 代表数据库的变量名 | 不 | 设置为默认 | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。
9 X2 x* v# K; u- @. Q6 [9 k/ d3 ?
: W. j+ T# W1 m4 b' T/ o) k从数据库查询 <sql:query var="deejays">
, [2 k& X }7 d2 j. V+ C6 U6 [ SELECT * FROM mytable
- r$ X# q2 O$ R. L</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}">) K- |4 E* H7 ]8 Y; C
<th><c ut value="${columnName}"/></th>
( t" j( e3 o9 ]* A ]+ u</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">' [* I: c4 T" W! Y6 U! L
<tr> w7 a6 b& w3 U/ p& U; R6 V1 {* [
<c:forEach var="column" items="${row}">1 F& J0 q1 @7 _+ c0 P% u& |+ H
<td><c ut value="${column.value}"/></td>5 m# B* T% W! g7 D. R
</c:forEach>
( [* i' w3 w: V+ W </tr>. j! |- m9 r! @5 E& Z1 ?+ 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
) F' h5 b6 n/ _# b6 ^" r8 V</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。* y( i. x# b2 S
您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。 : D& ?3 ^# c0 G
安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。
0 g! n4 q( x0 N. \) v- 把从 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 运行它
|