JSP中操作数据库的常用SQL标签用法总结
<sql:setdatasource>
标签设定数据源
语法结构:
<sql:setdatasource url="jdbcurl" driver="driverclassname" user="username" password="password" [var = "varname"][scope="{page | request | session | application}"] />
<sql:update>
标签进行增删改的操作
第一种格式:
<sql:update sql="sqlupdate" [var="varname"] [scope="{page|request|session|application}"][datasource="datasource"] />
eg:
<%@ 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>
第二种格式是将sql语句作为本体内容
<%@page language="java" contenttype="text/html;charset=gb2312"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <!doctype html> <html> <head> <title>update标签添加数据</title> </head> <body> <%-- 指定数据库链接url,jdbc驱动,用户名和密码 --%> <sql:setdatasource url="jdbc:mysql://localhost:3306/javaweb" driver="com.mysql.jdbc.driver" user="root" password="zhangda890126;;"/> <%-- 通过update标签添加数据 --%> <sql:update> insert into user(userid,username,password) values(null,"admin1","root1"); </sql:update> </body> </html>
<sql:query>标签
用来查询数据库中的数据
第一种格式:
<sql:query sql="sqlquery" [var="varname"] [scope="{page|request|session|application}"][datasource="datasource"]maxrows="" startrow="startrow" />
第二种格式是将sql语句作为本体内容
<%@page language="java" contenttype="text/html;charset=gb2312"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!doctype html> <html> <head> <title>query标签的使用</title> </head> <body> <%-- 指定数据库链接url,jdbc驱动,用户名和密码 --%> <sql:setdatasource url="jdbc:mysql://localhost:3306/javaweb" driver="com.mysql.jdbc.driver" user="root" password="zhangda890126;;"/> <%-- 通过update标签添加数据 --%> <sql:query var="result"> select * from user </sql:query> <%-- 显示所有的数据 --%> <center> <h3>查询所有的数据</h3> <table border="1"> <tr> <td>userid</td> <td>username</td> <td>password</td> </tr> <%-- 使用foreach循环输出所有的值 --%> <c:foreach items="${result.rows}" var = "row"> <tr> <td>${row.userid}</td> <td>${row.username}</td> <td>${row.password}</td> </tr> </c:foreach> </table> </center> </body> </html>
<sql:param>标签和<sql:dateparam>标签
<sql:param>有两种格式即:带有本体内容和不带本体内容的
不带本体内容的格式为
<sql:param value="value" />
带本体内容的格式为
<sql:param> 本体内容 </sql:param>
<sql:dateparam>标签的格式为:
<sql:dateparam value="value" [type="{timestamp|time|date}"] />
如果参数与时间和日期有关的话就使用<sql:dateparam>标签
<sql:transaction>标签
提供存取数据库时的一种安全机制(事物处理安全机制)
格式为:
<sql:transaction [datasource="datasource"] [isolation="read_committed|read_uncomited|repeatabl_read|serializable"]> <sql:update> or <sql:query> </sql:transaction>