如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。 % L _. d4 G4 J" A, b4 v/ Y( K" J$ g
. Q4 ]/ o$ ]/ z( F; K3 w8 G5 A
JDK1.2.x 或更高版本。可从此处下载。) O! V- V* a' [5 Y1 } M
Y( B0 B; J0 K
! _6 z1 E1 B q$ f; _2 |Oracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记
: @# k% X% L. q$ _) ]JSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。
[" B6 M9 B* _, P<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>3 y7 E7 H1 k, |7 _
3 R" X7 H% t: I7 @5 t& h$ S; z准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。
' T! m2 X9 m0 H' ?7 w下面的代码展示了如何创建一个数据源。( u Z( [2 g6 {3 B, a- p# J" G
<sql:setDataSource
- H" @# d% h; I% _& J6 P! b var="example"& a6 ` Q. N0 I6 T0 y
driver="oracle.jdbc.driver.OracleDriver"
/ S( x, e% O: w% v0 F& A* C url="jdbc racle:thin localhost:1521:ORCL"
( ^% }# z" R. q1 G$ R5 d, s user="scott"/ x8 N/ `. s( ]0 ~( ^
password="tiger"
H0 S5 }! k" I& J/> |
| <sql:setDataSource> 标签有如下属性:
# V: q" c+ {3 d( b# k1 f0 n1 T( c属性 | 说明 | 是否需要 | 默认 | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | url | 用于数据库连接的 JDBC URL | 不 | 无 | user | 数据库用户名 | 不 | 无 | password | 数据库密码 | 不 | 无 | dataSource | 预先准备的数据库(字符串或' V2 z2 P! E/ b. t0 P4 q
javax.sql.DataSource) | 不 | 无 | var | 代表数据库的变量名 | 不 | 设置为默认 | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。
4 J% J0 D3 H6 O/ J" y3 V* g* X* d1 k% d8 w) ?3 S I
从数据库查询 <sql:query var="deejays">
) D% g h' K. `( [ SELECT * FROM mytable! |$ F6 \+ o6 W+ s3 u/ E; S
</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}">0 `6 `: M* }+ V |" _7 g9 V, Y
<th><c ut value="${columnName}"/></th>9 |' ?: z& s E/ v A! d
</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">
7 @3 A7 V$ H* H* { <tr>: T$ C7 q! z9 O6 t8 _
<c:forEach var="column" items="${row}">" @, X" R& a* ~& r9 M. @
<td><c ut value="${column.value}"/></td>
8 u) p- h# Q2 X1 D; m% q </c:forEach>, l A% d8 p( x+ _
</tr>; h+ ~: F8 j& w( u- d
</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=12 T2 R% e# s( s# N8 b4 y+ w, f }
</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。( m( w5 N% A4 P/ x
您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。 8 z! ]. [1 ^4 P
安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。
# u. h) ^3 e' ^" ]- 把从 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 运行它
|