紀(jì)錄在JSP JSTL中使用存儲(chǔ)的過程
在Java中的JSP、JSP JSTL把存儲(chǔ)過程使用的常規(guī)方法和最簡方式介紹一下。本文以sql server2000例
在JSP JSTL中使用存儲(chǔ)過程
1、Java中過儲(chǔ)過程的標(biāo)準(zhǔn)使用方法:
可實(shí)現(xiàn)存儲(chǔ)過程中的各種功能,和最簡方法相比,它可以得到out參數(shù)和過程返回值。
?就是參數(shù)的占位符,一個(gè)問號代表有一個(gè)參數(shù)。
- String proc = "{call procname (?,? )}";
- CallableStatement stat = con.prepareCall(proc);
- //第一個(gè)參數(shù)為in的話,說明?號應(yīng)為英文輸入法下的,這個(gè)博客不能輸入英文的問號。
- stat.setString(1,'paravalue');//設(shè)置參數(shù)值
- //第二個(gè)參數(shù)作out的話
- stat.registerOutParameter(1,java.sql.Types.VARCHAR);//設(shè)置參數(shù)類型
- stat.execute();
- String paraValue = stat.getString(2);//得到out參數(shù)值
- 例如:
- <%@page import="java.sql.*"%>
- <%@page import="java.text.*"%>
- <%@page contentType="text/html;charset=GB2312"%>
- <%@include file="opendata.jsp"%>
- <%
- String strSQL = "{call pdrivertotal( , )}";
- CallableStatement stmt = con.prepareCall(strSQL);
- stmt.setString(1,"2005-08-20");
- stmt.setString(2,"2005-10-01");
- stmt.execute();
- %>
2、存儲(chǔ)過程的最簡寫法:
思路:將過程當(dāng)作普通的sql語句去執(zhí)行,也就是和查詢、更新的寫法是一樣。可實(shí)現(xiàn)執(zhí)行過程并且得到相關(guān)的數(shù)據(jù)集,但它不能得到過程的out輸出參數(shù),開發(fā)中90%的情況下皆適用。
- String proc = "exec 過程名 "+參數(shù)1+","+參數(shù)2;
- Statement stat = con.createStatement();
- ResultSet rs = stat.executeQuery(proc);
例如:
- //在JSP中使用
- <%
- Statement stat = con.createStatement();
- ResultSet rs = stat.executeQuery("zyfproc 20 '姓名'");
- //zyfproc為存儲(chǔ)過程名 20為int型參數(shù),姓名為varchar類參數(shù)
- %>
- //在使用了jstl標(biāo)簽的jsp中使用
- <sql:update var="proc" sql="exec jproc ?,?" dataSource="${ds}">
- <sql:param value="${param.hid}"/>
- <sql:param value="${param.sid}"/>
- sql:update>
以上過程是在JSP JSTL中使用存儲(chǔ)
【編輯推薦】