JSTL-Sql标签库

来源:互联网 发布:新楼兰怎么样知乎 编辑:程序博客网 时间:2024/05/17 12:19
 

SQL tag Library中的标签用来提供在 JSP 页面中可以与数据库进行交互的功能
Database access标签库有以下6组标签来进行工作:<sql:setDataSource>、<sql:query>、<sql:update>、<sql:transaction>、<sql:setDataSource>、<sql:param>、<sql:dateParam>

1.<sql:setDataSource> 标签:用于设置数据源
如:
    定义一个数据源并保存在"dataSrc"变量内
        <sql:setDataSource
            var="dataSrc"
            url="jdbc:oracle:thin:@2.2.2.203:1521:SZEPB"
            driver="oracle.jdbc.driver.OracleDriver"
            user="U_EBCMJCZD"
            password="U_EBCMJCZD"/>


2.<sql:query> 标签:用于查询
它标签体内可以是一句查询 SQL,保存的结果是 javax.servlet.jsp.jstl.sql.Result 类型的实例
如:
    使用<sql:query> 标签启动查询,将结果保存到变量"queryResults"中
    <sql:query var="queryResults" dataSource="${dataSrc}">
        select * from table1
    </sql:query>
    要取得结果集中的数据可以使用 <c:forEach> 循环来进行:
    <c:forEach var="row" items="${queryResults.rows}">
      <tr>
               <td>${row.userName}</td>
               <td>${row.passWord}</td>
      </tr>
    </c:forEach>
其中,"row"是javax.servlet.jsp.jstl.sql.Result实例的变量属性之一,用来表示数据库表中的"列"集合
循环时,通过"${row.XXX}"表达式可以取得每一列的数据,"XXX"是表中的列名

rows 一排SortedMap 对象,每个对象对映列名和结果集中的单行
rowsByIndex 一排数组,每个对应于结果集中的单行
columnNames 一排对结果集中的列命名的字符串,采用与rowsByIndex属性相同的顺序
rowCount 查询结果中总行数
limitedByMaxRows 如果查询受限于maxRows 属性值为真


3.<sql:update>标签:用于更新数据库,它的标签体内可以是一句更新的 SQL 语句
如:
    <sql:update sql="INSERT INTO user(username,pwd) VALUES('aa','123456')"/>

4.<sql:transaction>标签:用于事务处理
<sql:transaction> 标签用于数据库的事务处理,在该标签体内可以使用 <sql:update> 标签和 <sql:query> 标签,而 <sql:transaction> 标签的事务管理将作用于它们之上。
<sql:transaction> 标签对于事务处理定义了 read_committed 、 read_uncommitted 、 repeatable_read 、 serializable4 个隔离级别。
如:
    <sql:transaction>
        <sql:update sql="INSERT INTO user(username,pwd) VALUES('aa','123456')"/>
        <sql:update sql="DELETE user WHERE username='bb'"/>
    </sql:transaction>


5.<sql:param> 、 <sql:dateParam> 标签:用于向 SQL 语句提供参数
这两个标签用于向 SQL 语句提供参数,就好像程序中预处理 SQL 的“ ? ”一样
<sql:param> 标签传递除 java.util.Date 类型以外的所有相融参数,
<sql:dateParam> 标签则指定必须传递 java.util.Date 类型的参数。
如:
    <sql:query var="queryResults" dataSource="${dataSrc}">
        select * from user where username=?
        <sql:param value="${param.username}">
    </sql:query>

原创粉丝点击