如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。
3 E# z' ]& g3 n) |! A7 J8 c5 ]% q* d- }* y
JDK1.2.x 或更高版本。可从此处下载。
y% w' m& @1 k$ w, f6 f5 X2 u
0 H5 c0 q5 W& y! _5 H4 }# m: `- D2 F8 a0 w8 [' |- |9 a( e
Oracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记
& E, ]) B2 Z4 b1 L( m" B' tJSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。
' y" L2 Q- b0 }# C<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
8 T7 O: p& N ^! ?! f& A( W0 c4 \( Z5 o4 o- y1 u5 H$ Z7 b
准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。
& {& z1 h* z9 c4 U; [, X下面的代码展示了如何创建一个数据源。
9 B5 }5 H- j, Q9 E6 F7 r/ g<sql:setDataSource
* _6 G; `! Z; ^ n var="example"
/ _" z/ A5 B/ e* y driver="oracle.jdbc.driver.OracleDriver"
% A+ ~9 {1 I, S- Q8 Q' i6 v url="jdbc racle:thin localhost:1521:ORCL"+ s1 K0 O0 X T; `: |0 g1 n
user="scott"9 ` M3 T* q1 W3 h) D
password="tiger"
- e4 [$ _5 e" ?! y% B @' g& c) ~/> |
| <sql:setDataSource> 标签有如下属性:$ z4 E& W- y7 I. x: x
| 属性 | 说明 | 是否需要 | 默认 | | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | | url | 用于数据库连接的 JDBC URL | 不 | 无 | | user | 数据库用户名 | 不 | 无 | | password | 数据库密码 | 不 | 无 | | dataSource | 预先准备的数据库(字符串或
& Y H$ ?* e$ a" n z$ O; W" o$ V5 Tjavax.sql.DataSource) | 不 | 无 | | var | 代表数据库的变量名 | 不 | 设置为默认 | | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。
+ w0 K: e" o2 K' Y3 @0 n0 j4 Z) X$ b3 Q. O, t
从数据库查询 <sql:query var="deejays">( c* I, [: Y8 E) L4 u% {
SELECT * FROM mytable. a8 \" U$ T3 h
</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}">
. g8 l- o, }0 M* V6 w( N" }+ z <th><c ut value="${columnName}"/></th>
- h' P$ X& {- P( P' O* d</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">
! o# G0 G. N" l* m* v2 w! P <tr>) e% d3 ~0 @8 e0 I/ g" Q1 W- G
<c:forEach var="column" items="${row}"># U: H0 c3 [9 q& U# I& _
<td><c ut value="${column.value}"/></td>& o5 t* Z" P5 |; t! m/ g6 Q
</c:forEach>% }- e5 X, Z3 W6 _- u5 I
</tr>& _2 y! p7 y2 m0 X& Q
</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
/ a0 B& v2 C6 n! q& [. e1 Y: ]</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。- G- u' l' n5 \! ?3 J J6 |
您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。
+ r5 P( S* T; d7 U9 k. {安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。
c6 I* f- E% N# k/ G4 C9 n2 s- 把从 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 运行它
|