如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。
' b0 n# X7 M& o" r/ |% Z3 Y3 z* }1 U+ _
JDK1.2.x 或更高版本。可从此处下载。5 [8 e* i# [( p1 c }( @" U
- `0 k4 G9 j# ~9 i) B4 o
4 ~2 ~) w% X+ m; i6 F/ ^; e1 y: \Oracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记
% r: I9 d& v9 oJSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。5 N* M' |! o+ z6 Y9 p
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>& r8 A# i2 Q5 \9 Y' ]0 F" ~
' S0 C, Q1 ^" y7 H
准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。. s# T8 c! Z2 g3 j* q* P
下面的代码展示了如何创建一个数据源。
! B w' s5 m9 u' U* w& c<sql:setDataSource
. L o: J# U l+ c' r var="example"" j! ]# ^" V) E, W- Z
driver="oracle.jdbc.driver.OracleDriver"8 w! n$ T4 }; _
url="jdbc racle:thin localhost:1521:ORCL"
& d5 Y" [8 U% c& e user="scott"! C& o2 J4 H7 e, b! c
password="tiger"
$ b) V$ X* J' K+ N/ U1 @# K% ~/> |
| <sql:setDataSource> 标签有如下属性:
! l8 w0 |4 W% }' V7 j8 ]3 r& I| 属性 | 说明 | 是否需要 | 默认 | | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | | url | 用于数据库连接的 JDBC URL | 不 | 无 | | user | 数据库用户名 | 不 | 无 | | password | 数据库密码 | 不 | 无 | | dataSource | 预先准备的数据库(字符串或
' L6 Q: ]' Z- H) V3 F1 fjavax.sql.DataSource) | 不 | 无 | | var | 代表数据库的变量名 | 不 | 设置为默认 | | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。2 }; c& S" o, z8 K+ M, A9 x
8 m1 g0 E) J$ O) J1 Z% N$ v
从数据库查询 <sql:query var="deejays">+ n( N/ H# ~- a; E: b
SELECT * FROM mytable8 V) [& c. H. C7 O
</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}">4 C2 g- k1 K, J: I+ t% U
<th><c ut value="${columnName}"/></th>
0 W8 A0 L$ Q6 v- u" _, t</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">
/ e2 _' c& V, @9 [, X <tr>
- ?! y& R1 c& S8 d <c:forEach var="column" items="${row}">
8 v7 x$ @% Y8 F# H& q <td><c ut value="${column.value}"/></td>
/ I: n1 G: t! R+ V8 G) D3 | </c:forEach>
, L! f. }1 R& d7 j6 O9 f </tr>: g0 u2 o9 L3 n9 r/ R6 n0 c
</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( N) @2 D/ e, c$ X2 U: g
</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。! L: O4 f+ g- @2 F8 |6 A% Z! e& A: p
您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。
( U8 u$ U8 r3 r( r Z( V安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。$ ]& g8 s( A2 E0 [, Z$ N# Z0 S. y
- 把从 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 运行它
|