一、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