08---JSTL04(sql标签库)

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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bzuld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值