JSTL标签本省的功能的确很强大,基本上把所有的功能都包含了,但是从标准的MVC设计模式来考虑的话
,
这种JSP页面中直接操作SQL的开发是很业余的;
<Resource name="jdbc/lid"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
minIdle="30"
maxWait="10000"
username="root"
password="mysqladmin"
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/lid"/>
在lid的虚拟目录中已经配置好了一个数据源,此数据源的名称是:jdbc/lid,
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<sql:setDataSource dateSource="jdbc/lid" var="lidds"/>
<h3></h3>
</body>
</html>
此操作表示的是在页面中已经可以进行数据源的连接操作,但是连接之后可定要进行操作才有
意义;----用<sql:query>
使用数据库中的emp表进行查询:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<sql:setDataSource dateSource="jdbc/lid" var="lidds"/>
<sql:query= var="result" dataSource="${lidds}" 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:quert标签中还可以很方便的实现分页显示的操作,
<sql:query= var="result" dataSource="${lidds}" maxRows="2"
startRow="2">
select empno,ename,job,hiredate,sal from emp;
</sql:query>
<sql:update>标签:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<sql:setDataSource dateSource="jdbc/lid" var="lidds"/>
<sql:update var="result" dataSource="${lidds}">
insert into emp(empno,ename,job,hiredate,sal) values
(555,'lid_yuj','经理','2001-01-02',9000)
</sql:update>
</body>
</html>
删除操作:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<sql:setDataSource dateSource="jdbc/lid" var="lidds"/>
<sql:update var="result" dataSource="${lidds}">
delete from emp where empno=555;
</sql:update>
</body>
</html>
预处理:<sql:param>
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<%
pageContext.setAttribute("empno",61);
pageContext.setAttribute("ename","yuj");
pageContext.setAttribute("job","分析员");
pageContext.setAttribute("date",new Date());
%>
<sql:setDataSource dateSource="jdbc/lid" var="lidds"/>
<sql:update var="result" dataSource="${lidds}">
update emp set enmae=?,job=?,hireate=? where empno=?;
<sql:param value="${ename}"/>
<sql:param value="${job}"/>
<sql:dateParam value="${date}" type="date"/>
<sql:param value="${empno}"/>
</sql:update>
</body>
</html>
事务处理:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<sql:setDataSource dateSource="jdbc/lid" var="lidds"/>
<sql:transaction isolcation="serializable" dataSource="${lidds}">
<sql:update var="result">
insert into emp(empno,ename,job,hiredate,sal) values('32',
'yuj','经理','2001-11-12',9900);
</sql:update>
</sql:transaction>
</body>
</html>