`
zhiming_817
  • 浏览: 164227 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JSP中的SQL标签

    博客分类:
  • J2EE
阅读更多

SQL标签
 
SQL标签封装了数据库访问的通用逻辑,是用SQL标签可以大大简化数据库操作。SQL标签包含了查询、更新、事务处理和设置数据源等方面的功能。
 
1.      <sql:setDataSource dataSource=”” url=”” driver=”” user=”” password=”” var=”” scope=””> 这个标签用于设置数据源,可以通过scope指定数据源的范围,这里有两种类型的数据源,一种是直接使用在web应用中配置的数据源,只要指定它的JNDI名字就可以,另一种是指定所有的数据库连接属性。其中dataSource如果是String类型,那么表示JNDI名称空间中的DataSource的名字;如果是DataSource,那么是一个可以获得的数据源对象;url表示访问驱动程序的URL;driver表示指定驱动程序的实现类;user访问数据库的用户名;password表示访问数据库的密码;var表示标识这个DataSource的变量;scope表示指定这个DataSource的范围。例如:
<sql:setDataSource driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
              user="liky"
password="redhat"
              url="jdbc:sqlserver://localhost:1433;DatabaseName=csu"
var="db" />

 
2.        <sql:query dataSource=”” sql=”” maxRows=”” startRow=”” var=”” scope=””> 这个标签用于执行数据库查询操作。其中dataSource表示在setDataSource中的dataSource数据源;sql表示要执行的SQL语句;var表示保存了查询的结果集;scope表示变量的有效范围;maxRows表示返回的最大行数;startRow表示从第几行开始查询,这两个属性在无脚本实现分页时非常有用。例如:
<sql:query dataSource="${db}"var="ursers"
              sql="select * from bbs_user where id > ? "
scope="page" startRow="10" maxRows="10">
              <sql:param>12</sql:param>
</sql:query>
 

3.        <sql:update dataSource=”” sql=”” var=”” scope=””> 这个标签用于对数据库进行更新操作,这里所谓的更新包括insert、update和delete数据库操作语句。此外还包括一些没有返回结果集的SQL操作语句,例如创建表,更改表的结构等等。其中dataSource表示在setDataSource中的dataSource数据源;sql表示要执行的SQL语句;var表示保存了语句执行结果的变量;scope表示变量的有效范围。例如:如果是更新、删除、插入,那么表示更新的数据行数。例如:
<sql:query
dataSource="${db}"var="ursers"
sql="select * from bbs_user"
              scope="page" startRow="10" maxRows="10">
</sql:query>

 
4.        <sql:param value=””> 这个标签用于设置SQL预处理语句中的参数,在SQL预处理语句中,使用“?”占位符来表示它的参数。其中value表示指定的参数值,如果有多个参数,那么参数的设定顺序和占位符的顺序一致。这里可以不使用value属性而将值放在body中。例如:同上。
 

5.      <sql:transaction dataSource=”” isolation=”” > 这个标签用于进行事务处理,它为<sql :update>和<sql :query>建立事务处理的上下文,并且提供相同的数据源。dataSource也就是<sql :setDataSource>中指定的dataSource;isolationLevel属性指定了事务隔离的级别,如果没有指定的话,那么将使用已配置的DataSource的事务隔离级别,隔离的级别包含read_committed、read_uncommitted、repeatable_read、serializable等。需要注意的是嵌套在它里面的<sql :update>、<sql :query>标签不能使用DataSource属性来另外指定数据源。<sql :transaction>是数据库事务处理的轻量级封装,如果要处理复杂的或者是分布式的数据库事务,则不能使用。


7.  update标签示例

<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>测试update标签</title>
          </head>

<!-- 创建一个数据普通数据源 -->
<sql:setDataSource driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
 user="liky" password="redhat"
 url="jdbc:sqlserver://localhost:1433;DatabaseName=csu" var="db" />

<!-- 使用query 标签执行查询 -->
<sql:query dataSource="${db}" var="users"
 sql="select * from bbs_user where id > ? " scope="page" startRow="10"
 maxRows="10">
 <sql:param>12</sql:param>
</sql:query>

<body>

<!-- 迭代结果集 -->
<c:catch var="sqle">
 <c:forEach var="row" items="${users.rows}">
  <c:out value="${row.id}" />
  <c:out value="${row.user_name}" />
  <c:out value="${row.user_pwd}" />
  <br>
 </c:forEach>
</c:catch>
<c:out value="${empty sqle}" />
</body>
</html>


8.      update标签示例

<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>测试标签</title>
</head>

<sql:setDataSource driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
 user="liky" password="redhat"
 url="jdbc:sqlserver://localhost:1433;DatabaseName=csu" var="db" />

<body>

<!-- 这里使用update标签创建一个表 -->
<sql:transaction dataSource="${db}">
<sql:update var="update" scope="page">
 if exists(select 1 from sysobjects where name='tmp')
  drop table tmp
 
 create table tmp
 (
  id int identity(1,1) primary key,
  name varchar(20),
  pass varchar(20)
 )
</sql:update>
</sql:transaction>

<!-- 这里使用update标签修改表的结构,添加一个列 -->
<sql:transaction dataSource="${db}">
<sql:update var="update" scope="page">
 alter table tmp add age tinyint
</sql:update>
</sql:transaction>
<br>

</body>
</html>


9.     transaction和param标签等的综合示例

<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>测试update标签用来更新和插入数据</title>
          </head>

<sql:setDataSource driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
 user="liky" password="redhat"
 url="jdbc:sqlserver://localhost:1433;DatabaseName=csu" var="db" />

<body>

<!-- 这里演示update标签执行数据库更新 -->
<sql:update dataSource="${db}"
 sql="update bbs_user set user_name=? where id=?" var="update"
 scope="page">
 <sql:param value="Zuzheng Li" />
 <sql:param value="15" />
</sql:update>
成功更新数据行:<c:out value="${update}" />
<br>

<!-- 这里演示update标签执行数据库插入 -->
<!-- 这里的forEach迭代只是起到一个for循环的作用 -->
<c:forEach begin="0" end="10">
<sql:transaction dataSource="${db}">
<sql:update var="isOk" scope="page"
   sql="insert into bbs_emp (name, pass) values (?,?)">
   <sql:param value="lucy" />
   <sql:param value="thanks" />
</sql:update>
</sql:transaction>
</c:forEach>

</body>
</html>

 

 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/csuliky/archive/2008/05/23/2473641.aspx

 

分享到:
评论

相关推荐

    jsp用sql标签实现的投票系统

    用jsp的标签库实现的投票系统,用的是tocate7,和mysql5.5

    用户管理第三版JSP+SQL使用标准标签库

    用户管理第三版JSP+SQL使用标准标签库 适合初学者。。。

    JSP中操作数据库的常用SQL标签用法总结

    &lt;sql&gt; 标签设定数据源 语法结构: 代码如下:  &lt;sql url=”jdbcUrl” driver=”driverClassName” user=”userName” password=”password” xss=removed u201cvarName”][scope=”{page&gt; &lt;sql&gt; 标签进行增删改的...

    JSP标准标签库(jstl)

    JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、...它还支持使用本地化资源束进行 JSP 页面的国际化。xml 库包含一些标记,这些标记用来操作通过 XML 表示的数据,而 sql 库定义了用来查询关系数据库的操作。

    JSP参考手册 中文CHM版

    JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入...JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

    javaee项目,sql,,jsp

    个人博客系统,jsp标签,javaee,够了吧,我都写了这么多了,总之是一个好项目,数据库可用sql

    sql帮助文档和jsp标签文档

    这几天搜集来的,拿来和大家分享一下.有sql的文档和sql应用教程,pdf格式的.还有flash格式的html标签使用查找.

    JSP 标准标签库(JSTL)

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的...JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

    jsf登陆的例子 jsp+sqlserver2000 jsf标签

    应用了jsf技术,实现了标签的jsf,实现了jsf中的事件驱动,页面非常美观

    jsp+sql毕业选题系统(论文).rar.tar.gz

    JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其...

    JSP+SQL房屋租赁管理信息系统JDBC(源代码+论文+答辩PPT).zip

    JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其...

    JSP开发技术大全 JSP

    mail组件、程序日志组件、JavaScript脚本语言、CSS样式、XML入门技术、在JSP中应用Ajax技术、在JSP中应用DOM解析XML、在JSP中应用JDOM解析XML、在JSP中应用SAX解析XML、EL表达式、JSTL标签库、自定义标签、Hibernate...

    JSP 标准标签库(JSTL)

    JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。 根据JSTL标签所提供的功能,可以将其分为5个类别。 核心标签 ...

    jsp+sql书店进存销系统(论文).zip.tar.gz

    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签...

    JSP开发技术大全 源码

    mail组件、程序日志组件、JavaScript脚本语言、CSS样式、XML入门技术、在JSP中应用Ajax技术、在JSP中应用DOM解析XML、在JSP中应用JDOM解析XML、在JSP中应用SAX解析XML、EL表达式、JSTL标签库、自定义标签、Hibernate...

    jsp+sql宠物诊所系统设计(论文+系统).rar.tar.gz

    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签...

    jsp+sql城乡信息管理(系统)源码+论文.zip.tar.gz

    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签...

    android,css,html,jsp,asp,c++,Dos,sql 等帮助文档

    JScript官方中文手册,JSP由浅入深,MySQL5.1参考手册官方简体中文版,Oracle官方SQL参考手册,struts2.0中文教程,VC++ 编程指南,W3C HTML 5 中文手册,XML官方指南中文版,洪恩在线API教程,10天学会asp.net.

    jsp+sql操作系统教学网站设计(论文+程序).rar.tar.gz

    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签...

Global site tag (gtag.js) - Google Analytics