如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。 + ? U6 }( {" P6 R! `0 ]
7 Q- U2 S( j. I! a. ^/ I
JDK1.2.x 或更高版本。可从此处下载。
5 O! z1 n& p) ~
" s% G4 |( R! T3 Q# y3 V4 B
8 L6 L) ?/ T2 S: e6 s7 ?; fOracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记0 S- O" Y. G4 Z$ }2 E& j
JSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。" d5 Y: ?* ?1 {! g
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
( M# p" g/ f1 y& ?6 m" V
% ]) b( ?4 b( x& v- k准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。
3 z1 t. h# ~% `& f) s x9 o下面的代码展示了如何创建一个数据源。
# J4 @3 M: \6 j3 E* a8 b<sql:setDataSource! ]- e8 e9 ?1 ~+ v `
var="example"5 E, O! |+ _; K, F7 G, p
driver="oracle.jdbc.driver.OracleDriver"
8 J9 ^: F6 F/ P; ] url="jdbc racle:thin localhost:1521:ORCL"% E( O* t. W( r6 \' ~: _( N+ J
user="scott"9 a( ]: O& s- c
password="tiger"* S" [# v" ^! x" s! Q! q( G/ \
/> |
| <sql:setDataSource> 标签有如下属性:
6 e$ D3 M5 J, T& e7 C6 V* J2 H属性 | 说明 | 是否需要 | 默认 | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | url | 用于数据库连接的 JDBC URL | 不 | 无 | user | 数据库用户名 | 不 | 无 | password | 数据库密码 | 不 | 无 | dataSource | 预先准备的数据库(字符串或
0 Z! c8 V$ y. F" D" d0 xjavax.sql.DataSource) | 不 | 无 | var | 代表数据库的变量名 | 不 | 设置为默认 | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。
; V7 d! A* v( N5 Z
! p8 A, Z0 h1 Y, l从数据库查询 <sql:query var="deejays">8 g" o. j+ s. r6 p
SELECT * FROM mytable% ^/ m: ?5 p2 ~' E* T0 F( {
</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}">
7 L2 {& |: R% c1 H/ t% `. j8 @ <th><c ut value="${columnName}"/></th>7 z' E+ N; }; H% k" {! {
</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">6 X0 t, O/ b6 L
<tr>
4 x8 x( l4 G; _5 x' a/ ?2 N <c:forEach var="column" items="${row}">/ S. p$ |: U# O3 ~9 M( g/ B
<td><c ut value="${column.value}"/></td>
0 W# F7 }0 S, d% Z </c:forEach>' J) y7 W) w5 ]) b6 ?- w s; T7 B
</tr>; u' B1 r9 j+ D) O6 g e3 U9 |2 R
</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=16 D% a. G6 @8 S3 O
</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。
$ U# B2 i! y5 J5 E您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。
, G; v0 e$ d$ | W8 L安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。
- [$ l3 d: e% g4 K$ 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 运行它
|