如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。
: w& O) X9 Y, Z+ h
6 V& A1 M2 [! cJDK1.2.x 或更高版本。可从此处下载。1 I i$ @ C4 ?/ g. O( T
6 H3 B' ^) t% W( ~; _2 q
( i0 H7 M6 p/ j* E! _ j( b+ }Oracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记2 b$ X" G2 _/ x0 D
JSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。( h) ~& P5 p# W1 H9 r* f
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
3 y3 \) Q! Y2 X* g& s$ V1 h
$ I W+ L5 a1 f$ g% m! }8 N4 P6 |准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。# p6 j1 p2 @) f
下面的代码展示了如何创建一个数据源。
X4 `/ k. I* M3 S; {, k<sql:setDataSource6 o4 z9 u; i: N4 h( R. z/ @2 v
var="example"
5 f- O# v {+ b: x$ P. O driver="oracle.jdbc.driver.OracleDriver"/ E/ a4 c# m9 H4 F5 b& w* R5 U
url="jdbc racle:thin localhost:1521:ORCL"$ k. |1 \# h5 \5 m: q) X
user="scott"
# E! E8 f" K* o password="tiger"' q+ ^: Q: H. T0 v( ]* Y
/> |
| <sql:setDataSource> 标签有如下属性:) U+ J5 b1 ~9 l- \6 E9 K# n$ X0 z5 q
属性 | 说明 | 是否需要 | 默认 | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | url | 用于数据库连接的 JDBC URL | 不 | 无 | user | 数据库用户名 | 不 | 无 | password | 数据库密码 | 不 | 无 | dataSource | 预先准备的数据库(字符串或
* p5 \: u7 w: l% ` ojavax.sql.DataSource) | 不 | 无 | var | 代表数据库的变量名 | 不 | 设置为默认 | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。7 ^7 m6 X( J; w
5 i/ ]/ ?- S ]. R& A/ R: l5 _# I从数据库查询 <sql:query var="deejays">1 |- p: A2 R' e( Y" ]
SELECT * FROM mytable+ l) ]# z0 A* H, ~2 u% q
</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}">
% y I" I; X! z7 u" Z' _9 |; ? <th><c ut value="${columnName}"/></th>; @, H( \* b4 w
</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">
+ z* Z1 ]$ a/ k# F <tr>. n/ V) [7 G" |0 A+ l
<c:forEach var="column" items="${row}">) p9 @* w9 I* |# V! f- e/ W. E9 ?
<td><c ut value="${column.value}"/></td>
% r2 K- M$ V Q9 P0 } </c:forEach>2 a5 O* v5 X2 O7 W7 b( o7 n t T
</tr>! w- T0 t _. x5 |- @
</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% ?) z9 l$ Q9 d2 N9 N! o
</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。, e8 w& @% x0 Y3 X2 P; F
您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。 ' w) X" R: x! n0 D) q4 [
安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。
/ `0 Y) a% g" S2 w) M- 把从 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 运行它
|