了解即可。SQL標簽庫
| No. |
功能分類 |
標簽名稱 |
描述 |
| 1 |
數據源標簽 |
<sql:setDataSource> |
設置要使用的數據源名稱 |
| 2 |
數據庫操作標簽 |
<sql:query> |
執行查詢操作 |
| 3 |
<sql:update> |
執行更新操作 |
|
| 4 |
事務處理標簽 |
<sql:transaction> |
執行事務的處理操作,並設置操作的安全級別
|
- 設定數據源:<sql:setDataSource>
| No. |
屬性名稱 |
EL支持 |
描述 |
| 1 |
dataSource |
√ |
數據源名稱 |
| 2 |
driver |
√ |
JDBC數據庫驅動程序 |
| 3 |
url |
√ |
數據庫連接的URL地址 |
| 4 |
user |
√ |
數據庫的用戶名 |
| 5 |
password |
√ |
數據庫的密碼 |
| 6 |
var |
× |
儲存數據庫連接的屬性名稱 |
| 7 |
scope |
× |
var屬性的保存范圍,默認為page
|
<%@ taglib uri="http://www.mldn.cn/jstl/sql" prefix="sql"%> <sql:setDataSource dataSource="jdbc/mldn" var="mldnds"/>
數據庫操作標簽 :<sql:query>、<sql:update>、<sql:transaction>
- 查詢操作:<sql:query>
SQL查詢語句
</sql:query>
<sql:query>標簽的屬性 :
| No. |
屬性名稱 |
EL支持 |
描述 |
| 1 |
sql |
√ |
編寫要執行的查詢語句 |
| 2 |
dataSource |
√ |
本查詢要使用的數據源名稱 |
| 3 |
maxRows |
√ |
最多可以顯示的數據記錄數 |
| 4 |
startRow |
√ |
數據的開始行數,默認在第0行 |
| 5 |
var |
× |
保存查詢結果 |
| 6 |
scope |
× |
var變量的保存范圍,默認是page范圍
|
<sql:setDataSource dataSource="java:comp/env/jdbc/mldn" var="mldnds"/>
<sql:query var="result">
SELECT empno,ename,job,hiredate,sal FROM emp ;
</sql:query>
查詢結果的五個屬性 :
| No. |
屬性名稱 |
描述 |
| 1 |
rows |
根據字段名稱取出列的內容 |
| 2 |
rowsByIndex |
根據字段索引取出列的內容 |
| 3 |
columnNames |
取得字段的名稱 |
| 4 |
rowCount |
取得全部的記錄數 |
| 5 |
limitedByMaxRows |
取出最大的數據長度
|
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ taglib prefix="c" uri="http://www.mldn.cn/jst/core"%>
<%@ taglib prefix="sql" uri="http://www.mldn.cn/jst/sql"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培訓</title></head>
<body>
<sql:setDataSource dataSource="jdbc/mldn" var="mldnds"/>
<sql:query var="result" dataSource="${mldnds}" maxRows="2" startRow="2">
SELECT empno,ename,job,hiredate,sal FROM emp ;
</sql:query>
<h3>一共有${result.rowCount}條記錄!</h3>
<table border="1" width="100%">
<tr>
<td>雇員編號</td>
<td>雇員姓名</td>
<td>雇員工作</td>
<td>雇員工資</td>
<td>雇佣日期</td>
</tr>
<c:forEach items="${result.rows}" var="row">
<tr>
<td>${row.empno}</td>
<td>${row.ename}</td>
<td>${row.job}</td>
<td>${row.sal}</td>
<td>${row.hiredate}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
分頁顯示:
<sql:query var="result" dataSource="${mldnds}" maxRows="2" startRow="2">
SELECT empno,ename,job,hiredate,sal FROM emp ;
</sql:query>
- 更新操作:<sql:update>
更新的SQL語句
</sql:update>
<sql:update>標簽的屬性 :
| No. |
屬性名稱 |
EL支持 |
描述 |
| 1 |
sql |
√ |
編寫要執行的更新語句 |
| 2 |
dataSource |
√ |
本更新要使用的數據源名稱 |
| 3 |
var |
× |
保存更新的記錄數 |
| 4 |
scope |
× |
var變量的保存范圍,默認是page范圍 |
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ taglib uri="http://www.mldn.cn/jstl/sql" prefix="sql"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培訓</title></head>
<body>
<sql:setDataSource dataSource="jdbc/mldn" var="mldnds"/>
<sql:update var="result" dataSource="${mldnds}">
INSERT INTO emp (empno,ename,job,hiredate,sal) VALUES ('6878','周軍','經理','2003-03-14',9000) ;
</sql:update>
</body>
</html>
設置參數:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ taglib uri="http://www.mldn.cn/jstl/sql" prefix="sql"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培訓</title></head>
<body>
<%
pageContext.setAttribute("empno",6878) ;
pageContext.setAttribute("ename","李軍") ;
pageContext.setAttribute("job","分析員") ;
pageContext.setAttribute("date",new java.util.Date()) ;
%>
<sql:setDataSource dataSource="jdbc/mldn" var="mldnds"/>
<sql:update var="result" dataSource="${mldnds}">
UPDATE emp SET ename=?,job=?,hiredate=? WHERE empno=? ;
<sql:param value="${ename}"/>
<sql:param value="${job}"/>
<sql:dateParam value="${date}" type="date"/>
<sql:param value="${empno}"/>
</sql:update>
</body>
</html>
- 事務處理 :<sql:transaction>
<sql:update>或者<sql:query>
</sql:transaction>
事務的安全級別防范 :
| No. |
安全級別 |
臟讀 |
不可重復讀 |
幻象讀 |
| 1 |
read_committed |
|||
| 2 |
read_uncommitted |
√ |
||
| 3 |
repeatable |
√ |
√ |
|
| 4 |
serializable |
√ |
√ |
√ |
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ taglib uri="http://www.mldn.cn/jstl/sql" prefix="sql"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培訓</title></head>
<body>
<sql:setDataSource dataSource="jdbc/mldn" var="mldnds"/>
<sql:transaction isolation="serializable" dataSource="${mldnds}">
<sql:update var="result">
INSERT INTO emp (empno,ename,job,hiredate,sal) VALUES ('6879','李彥','經理','2003-03-14',3000) ;
</sql:update>
</sql:transaction>
</body>
</html>
總結:
