一、SQL標籤庫:
1.DriverManager:驅動管理,獲取連接,驅動不同,url不同,數據庫不同。DataSource對象表示的物理數據源的連接。作爲DriverManager工具替代項.
c) dateParam標籤:設置SQL語句中java.sql.Date類型的點位符參數。
d) param標籤:設置SQL語句中點位符參數值。
e) query標籤:執行查詢,返回的結果類型是javax.servlet.jsp.jstl.sql.Result接口實例,需要通過Result.getRows()方法得到所有的行數據,getRows()方法返回的結果類型是一個可排序的Map(java.util.SortedMap)數組。數組中的每個元素是一個SortedMap即保存了數據庫的一行數據。
示例:${result.rows } //得到的是一個SortedMap的數組,每個元素是一行數據。
f) setDataSource標籤:
i. 1)可以創建新的數據源;
ii. 2)可使用Tomcat下已配置的數據源。
g) update標籤:執行更新、刪除、插入操作。
h) transaction標籤:完成事務操作,如果多條更新、刪除、插入語句要做爲一個原子性(atomicity,即所有的操作那麼全部成功那麼全部失敗)來執行
i. (面試題) 補充,事務的四大特性(ACID):
- Atomicity:原子性,即所有的操作那麼全部成功那麼全部失敗。
- Consistency:一致性,對數據做出改變必要前後一致。
- Isolation:隔離性,指多個事務同時操作某一資源時,每個事務都應該是獨立完成。
- Durability:持久性,指的是事務操作的結果必須是永久的。
ii. isolation屬性值: - 事務隔離 (READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, SERIALIZABLE)對於大多數數據庫來說,默認的隔離是READ_COMMITTED提交讀。
T1 —> insert , but uncommit;
T2 —> read 讀不到T1插入的數據,因爲未提交
T1 - rollback
2.操作例子:
對於一個數據庫來說只需要一個數據源就可以了
<sql:setDataSource var="GllgDataSource"
driver=""
utl=""
user=""
password=""
scope="application"/>
<%query var="結果集對象" dataSource="數據源" startRow="查詢結果行號" maxRows="獲取數據記錄數"
注意:結果集對象的類型不是java.sql.ResulSet 的實例,而是javax.servlet.jsp.jstl.sql.Result 的實例%>
<%
pageContext.setAttribute("hiredate",new java.sql.date(new java.util.date().getTime()));
%>
<sql:query var="resultsSet" dataSource="${GllgDataSource}" startRow="${}" maxRows="10"
select * from employee where ename like ? and sal>=? and hiredate<?
<sql:param value="%A%"/>
<sql param>1000.0</sql:param>
<sql:dataParam value="${hiredate}"/>
</sql:query>
<table width="700" border="1" cellpadding="0" cellspacing="0">
<tr>
<th>編號</th>
<th>姓名</th>
<th>工作</th>
<th>經理編號</th>
<th>入職日期</th>
<th>工資</th>
<th>獎金</th>
<th>部門編號</th>
</tr>
<c:forEach var="emp" items="${resultSet.rows}">
<tr>
<td>${emp.empno}</td>
<td>${emp.ename}</td>
<td>${emp.job}</td>
<td>${emp.mgr}</td>
<td><fmt:formatDate value="${emp.hiredate}" pattern="yyyy年MM月dd日"/></td>
<td><fmt:formatNumber value="${emp.sal}" type="currency" /> </td>
<td>${emp['comm']}</td>
<td>${emp['deptno']}</td>
</tr>
</c:forEach>
</table>
<%--
<sql:transaction dataSource="${GllgDataSource}">
<sql:update>
n次delete, update, insert
</sql:update>
</sql:transaction>
--%>
http://www.itbang.me/accou?menuKey=updateAvatar