如何使用 SQL JSP 标准库:软件需求 Oracle9i Database version 9.0.1 或更新版本。您可从 Oracle 技术网下载 Oracle9i Database。
* ?/ O" Y9 D2 X2 ]& X, Q; c3 Y! V& v* a7 {/ r
JDK1.2.x 或更高版本。可从此处下载。' D# z- d/ c% Y% `/ ~+ M
3 o& _* R0 }0 t1 u$ O# ?2 v5 |
, Y. N4 i4 y. d+ i3 D+ o$ ^4 V& h
Oracle9iAS Container for Java(OC4J) version 9.0.3 或更新版本。可以在 OTN 下载。- JSP 标准标记库。您可以使用 Apache.org 提供的标准标记库 1.0 Reference Implementation
使用数据库 JSTL 标记
# l- f3 l9 t! M+ e4 N$ UJSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。
2 {8 U5 u( X2 X- w# n- E: \0 o! l! F<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>1 O+ X4 S# }. f. J' `7 `) @/ J) ?2 N
/ ^# k3 x q* t9 U+ L准备数据库对于没有默认数据库的 JSP 页面,<sql:setDataSource> 能够准备一个数据库以供使用。' i9 V6 `+ o4 ^0 O$ P( F8 N u0 D6 w1 D
下面的代码展示了如何创建一个数据源。8 Z$ J: z: j5 M& `0 H- A
<sql:setDataSource! C" K. } t7 g+ m2 a; `3 f. q
var="example"3 S1 {4 {9 e; u" X# I
driver="oracle.jdbc.driver.OracleDriver"
+ O1 q) o, @) K url="jdbc racle:thin localhost:1521:ORCL"
- c1 r P( Z9 k; G' }3 y user="scott"
/ ~ ^& @) H' C _( l password="tiger"# @5 I; y( M9 q9 u) W
/> |
| <sql:setDataSource> 标签有如下属性:
" M- j0 _, T% J属性 | 说明 | 是否需要 | 默认 | driver | 需要注册的 JDBC 驱动程序类的名称 | 不 | 无 | url | 用于数据库连接的 JDBC URL | 不 | 无 | user | 数据库用户名 | 不 | 无 | password | 数据库密码 | 不 | 无 | dataSource | 预先准备的数据库(字符串或7 O0 t" F% \- C$ Z4 d0 T4 n
javax.sql.DataSource) | 不 | 无 | var | 代表数据库的变量名 | 不 | 设置为默认 | scope | 代表数据库的变量的作用域 | 不 | 页面 | 查询与更新JSTL 可以使用 <sql:query> 从数据库读取数据并使用 <sql:update> 向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param> 和 <sql:dateParam> 可以填充到这些占位符中。
, G. }+ X8 v/ A% w, b# O# t! Q3 L2 F5 Q3 i; T. x% f! P6 T6 b) P
从数据库查询 <sql:query var="deejays">
( t4 u! s& V% I" r% L; } SELECT * FROM mytable
& V) ^6 [: g4 a2 o% i</sql:query><%-- Get the column names for the header of the table --%><c:forEach var="columnName" items="${deejays.columnNames}">$ X$ o* p. h4 A2 p, y( m
<th><c ut value="${columnName}"/></th>
8 }" C5 g) t) E6 V! U</c:forEach><%-- Get the value of each column while iterating over rows --%><c:forEach var="row" items="${deejays.rows}">4 U( S/ G4 Y* {+ j+ ~# c3 }
<tr>1 C# j1 u; r& Q1 q$ `, {2 m& p
<c:forEach var="column" items="${row}">
2 b4 l. K' q n* J( y <td><c ut value="${column.value}"/></td>5 k+ s- ^ ?" w1 t
</c:forEach>9 T" _9 T- k+ n4 g
</tr>6 C" L3 o- W: p: M% B! F
</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
( n2 s' g, ^7 r- p</sql:update> |
| <sql:update> 标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm> 把一个值与 ? 相关联。<sql:parm> 的值可以从一个变量中获取(如 HTTP 参数)。
9 i, K. N/ L* j2 g( D, i您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。 e/ ?% P- `6 J& V$ t
安装为了运行此代码,您需要配置 OC4J 以使用 JSTL。( D1 U" u6 I) X- s9 @3 l# 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 运行它
|