SQL 标签库
JSTL 标签本身的功能的确很强大,基本上把所有的功能都包含了,但是从标准的MVC设计模式类考虑的话,这种在JSP 页面中直接操作SQL 的开发纯粹属于业余人士。
<Context path="/demo" docBase="E:\webdemo" reloadable="true">
<Manager className="org.apache.catalina.session.PersistentManager">
debug=0 saveOnRestart="true"
maxActiveSession="-1" minIdleSwap="-1"
maxIdleSwap="-1" maxIdleBackup="-1"
<Store
className="org.apache.catalina.session.FileStore"
directory="d:\temp"/>
</Manager>
<Resource name="jdbc/mydata"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:8080/mydata"/>
</Context>
server.xml
数据库操作标签
数据库的主要操作就是查询、更新及事务处理,所以在JSTL 中分别提高了<sql:query>标签、<sql:update>、<sql:transaction>几个主要的操作标签
<Context path="/demo" docBase="E:\webdemo" reloadable="true">
<Manager className="org.apache.catalina.session.PersistentManager" >
debug=0
saveOnRestart="true"
maxActiveSession="-1"
minIdleSwap="-1"
maxIdleSwap="-1"
maxIdleBackup="-1"
<Store className="org.apache.catalina.session.FileStore" directory="d:\temp" />
</Manager>
<Resource name="jdbc/mydata"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:8080/mydata"/>
</Context>
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://www.csdn.net/jst/core"%>
<%@ taglib prefix="sql" uri="http://www.csdn.net/jst/sql"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
<sql:setDataSource dataSource="jdbc/mydata" var="gz"/>
<sql:query var="result" dataSource="${gz}">
select deptno,sal,comm,ename,job,mgr,hiredate from emp;
</sql:query>
<h3>
一共有${result.rowCount }条记录!
</h3>
<table border="1" width="100%">
<tr>
<td>雇员编号</td>
<td>雇员工资</td>
<td>雇员奖金</td>
<td>部门名称</td>
<td>雇员工作</td>
<td>雇员上司</td>
<td>雇员日期</td>
</tr>
<c:forEach items="result.rows" var="row">
<tr>
<td>${row.deptno}</td>
<td>${row.sal}</td>
<td>${row.comm}</td>
<td>${row.ename}</td>
<td>${row.job}</td>
<td>${row.mgr}</td>
<td>${row.hiredate}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
对于此种查询,在之前的JDBC 中也可以发现通过ResultSet接口查询回来的内容,可以直接通过下标的形式访问里面的一个查询的操作列
<sql:query var="result" dataSource="${gz}" maxRows="2" startRow="2"/>
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://www.csdn.net/jst/core"%>
<%@ taglib prefix="sql" uri="http://www.csdn.net/jst/sql"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
<sql:setDataSource dataSource="jdbc/mydata" var="gz"/>
<sql:query var="result" dataSource="${gz}">
insert into emp(deptno,sal,comm,ename,job,mgr,hiredate) values () ;
</sql:query>
</body>
</html>
delete from emp where deptno=?;