完成本方法文档的学习后您应该能够使用 SQL JSTL 来:
-
向 Oracle 数据库中插入一行数据
-
更新一列数据
简介
本文档演示如何使用 SQL JSP 标准标记库 (JSTL) 访问 Oracle 数据库。JSTL 的目的是为那些不熟悉或不适应脚本语言(如 Java)的 JSP 页面作者提供方便。过去,我们在 JSP 页面中使用 scriptlet 来处理动态数据。而 JSTL 的目的就是使用 JSTL 标记来代替 scriptlet。在本方法文档中,我们将学习如何使用 JSTL 来访问数据库。http://java.sun.com/jstl/sql 页面上提供了所有的 SQL 标记。
软件需求
使用数据库 JSTL 标记
JSTL 的数据库的库支持数据库查询、更新和事务处理。JSP 页面能够使用下面的指令导入这个库。
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
准备数据库
对于没有默认数据库的 JSP 页面,<sql:setDataSource>
能够准备一个数据库以供使用。
下面的代码展示了如何创建一个数据源。
<sql:setDataSource var="example" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:ORCL" user="scott" password="tiger" />
|
|
<sql:setDataSource>
标签有如下属性:
属性
|
说明
|
是否需要
|
默认
|
driver |
需要注册的 JDBC 驱动程序类的名称 |
不 |
无 |
url |
用于数据库连接的 JDBC URL |
不 |
无 |
user |
数据库用户名 |
不 |
无 |
password |
数据库密码 |
不 |
无 |
dataSource |
预先准备的数据库(字符串或
javax.sql.DataSource ) |
不 |
无 |
var |
代表数据库的变量名 |
不 |
设置为默认 |
scope |
代表数据库的变量的作用域 |
不 |
页面 |
查询与更新
JSTL 可以使用 <sql:query>
从数据库读取数据并使用 <sql:update>
向数据库写入数据。这些标记可以通过 ? 占位符支持 SQL 命令,<sql:param>
和 <sql:dateParam>
可以填充到这些占位符中。
从数据库查询
<sql:query var="deejays"> SELECT * FROM mytable </sql:query>
<%-- Get the column names for the header of the table --%>
<c:forEach var="columnName" items="${deejays.columnNames}"> <th><c:out value="${columnName}"/></th> </c:forEach>
<%-- Get the value of each column while iterating over rows --%>
<c:forEach var="row" items="${deejays.rows}"> <tr> <c:forEach var="column" items="${row}"> <td><c:out value="${column.value}"/></td> </c:forEach> </tr> </c:forEach>
|
|
<sql:query>
标记可用来查询数据库,核心标记 <c:forEach>
用于遍历结果集。<c:forEach>
标记读取查询中的每一行。您可以使用列名来获取行中每一列的值。核心标记 <c:out>
用于输出值。
更新表中的一列
<sql:update var="updateCount" dataSource="${example}">
UPDATE mytable SET name=?
<sql:param value="Scott Tiger"/> WHERE nameid=1 </sql:update>
|
|
<sql:update>
标记用于 DML 操作。在更新查询中可以有 '?'。然后您可以使用 <sql:parm>
把一个值与 ? 相关联。<sql:parm>
的值可以从一个变量中获取(如 HTTP 参数)。
您可以查看完整的源代码以了解如何创建一个表以及其撤消方法。
安装
为了运行此代码,您需要配置 OC4J 以使用 JSTL。
-
把从 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 运行它
参考
总结
在阅读完本文档后,您应该已经理解了如何使用 JSTL 标记来访问数据库。