SQL
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
1.<sql:setDataSource>
设置数据源
<sql:setDataSource dataSource=""|url="jdbcUrl" driver="" user="" password=""
var="varName" scope=""/>
var:String DataSource
dataSource的值有两种形式:1.指定数据源的JNDI名的相对路径,例如java:comp/env/jdbc/bookstore,只需设置为"jdbc/bookstore"即可。
2。指定DriverManager类需要的参数,格式 url,driver,user,password
没有设置var的话,数据源将被保存到javax.servlet.jsp.jstl.sql.dataSource
<sql:setDataSource
var="example"
driver="RmiJdbc.RJDriver"
url="jdbc:rmi://localhost:1099/jdbc:cloudscape:CloudscapeDB;create=true"
/>
2.<sql:query>
对数据库查询
<sql:query sql="sqlQuery" var="" scope="" dataSource="" maxRows="" startRow=""/>
<sql:query sql="sqlQuery" var="" scope="" dataSource="" maxRows="" startRow="">
<sql:param>
</sql:query>
<sql:query var="" scope="" dataSource="" maxRows="" startRow="">
<sql:param>
sqlQuery
</sql:query>
var:javax.servlet.jsp.jstl.sql.Result
Result的五个方法:
String[]getColumnNames();返回结果集中列的名称
SortedMap[]getRows 每个sortedMap达标一行,列名作为key,对应列的数据作为value
int getRowCount()
Object [][]getRowsByIndex()第一位表示查询结果的行,第二列查询结果的列
boolean isLimitedByMaxRows()原始记录行数是行大于maxRows
五个属性:columnNames,rowCount,rows,rowsByIndex,limitedByMaxRows
<sql:query sql="select * from bookinfo" var="books"/>
<table>
<c:forEach var="book" items="${books.rows}">
<tr>
<td><c:out value="${book.title(列名)}"/></td>
<td><c:out value="${book.author}"></td>
</tr>
</c:forEach>
</table>
<sql:query sql="select * from bookinfo" var="books"/>
<table>
<c:forEach var="book" items="${books.rowsByIndex}">
<tr>
<td><c:out value="${book[1]}"/></td>
<td><c:out value="${book[2]}"></td>
</tr>
</c:forEach>
</table>
3.<sql:param>
设置sql语句中?的值
<sql:param value="">
<sql:param>
value
</sql:param>
*如果参数的类型是时间或者日期,需要用<sql:dateParam>
4.<sql:dateParam>
<sql:dateParam value="" type="timestamp|time|date"/>
type默认值是timestamp
5.<sql:update>
执行insert、update或者delete语句,还可以执行SQL DDL语句
<sql:update sql="update" dataSource="" var="" scope=""/>
<sql:update dataSource="" var="" scope="">
update
<sql:param>
</sql:update>
var: Integer更新所影响的数据库的行数
6.<sql:transaction>
<sql:transaction dataSource="" isolation="level"
<sql:query>and<sql:update>
</sql:transaction>