了解即可。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>
总结: