自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對(duì)比JSP和ASP.NET的存儲(chǔ)過(guò)程

開發(fā) 后端 數(shù)據(jù)庫(kù)運(yùn)維
本文通過(guò)實(shí)例,簡(jiǎn)單講解在Java中的JSP、JSP+JSTL,.Net中的ASP.NET結(jié)合Sql Server數(shù)據(jù)庫(kù)開發(fā)中,存儲(chǔ)過(guò)程使用的常規(guī)方法和最簡(jiǎn)方式。

在Java中的JSP、JSP+JSTL,.Net中的ASP.NET結(jié)合Sql Server數(shù)據(jù)庫(kù)開發(fā)中,把存儲(chǔ)過(guò)程使用的常規(guī)方法和最簡(jiǎn)方式介紹一下。

本文以SQL Server 2000例

一、在JSP(JSTL)中使用存儲(chǔ)過(guò)程:

1、Java中過(guò)儲(chǔ)過(guò)程的標(biāo)準(zhǔn)使用方法:

可實(shí)現(xiàn)存儲(chǔ)過(guò)程中的各種功能,和最簡(jiǎn)方法相比,它可以得到out參數(shù)和過(guò)程返回值?!埃俊本褪菂?shù)的占位符,一個(gè)問(wèn)號(hào)代表有一個(gè)參數(shù)。

String   proc   =   "{call   procname   (?,? )}";
CallableStatement   stat   =   con.prepareCall(proc);
//第一個(gè)參數(shù)為in的話,說(shuō)明?號(hào)應(yīng)為英文輸入法下的,這個(gè)博客不能輸入英文的問(wèn)號(hào)。
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ǔ)過(guò)程的最簡(jiǎn)寫法:

思路:將過(guò)程當(dāng)作普通的sql語(yǔ)句去執(zhí)行,也就是和查詢、更新的寫法是一樣??蓪?shí)現(xiàn)執(zhí)行過(guò)程并且得到相關(guān)的數(shù)據(jù)集,但它不能得到過(guò)程的out輸出參數(shù),開發(fā)中90%的情況下皆適用。

String   proc   =   "exec  過(guò)程名 "+參數(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ǔ)過(guò)程名 20為int型參數(shù),姓名為varchar類參數(shù)
%﹥
//在使用了jstl標(biāo)簽的jsp中使用
﹤!--執(zhí)行存儲(chǔ)過(guò)程--﹥
﹤sql:update var="proc" sql="exec jproc ?,?" dataSource="${ds}"﹥
﹤!-- 說(shuō)明?號(hào)應(yīng)為英文輸入法下的,這個(gè)博客不能輸入英文的問(wèn)號(hào)。--﹥
    ﹤sql:param value="${param.hid}"/﹥
﹤sql:param value="${param.sid}"/﹥
﹤/sql:update﹥

#p#

二、在ASP.NET(C#)中,使用存儲(chǔ)過(guò)程:

1  C#中存儲(chǔ)過(guò)程的使用標(biāo)準(zhǔn)版

private void sql_proc()
  {  
   SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");
   string sql="proc_out";
   SqlCommand comm=new SqlCommand(sql,conn);  
   //把Command執(zhí)行類型改為存儲(chǔ)過(guò)程方式,默認(rèn)為Text。
   comm.CommandType=CommandType.StoredProcedure;
   //傳遞一個(gè)輸入?yún)?shù),需賦值
   SqlParameter sp=comm.Parameters.Add("@uid",SqlDbType.Int);
   sp.Value=10;
   //定義一個(gè)輸出參數(shù),不需賦值。Direction用來(lái)描述參數(shù)的類型
   //Direction默認(rèn)為輸入?yún)?shù),還有輸出參數(shù)和返回值型。
   sp=comm.Parameters.Add("@output",SqlDbType.VarChar,50);
   sp.Direction=ParameterDirection.Output;
   //定義過(guò)程的返回值參數(shù),過(guò)程執(zhí)行完之后,將把過(guò)程的返回值賦值給名為myreturn的Paremeters賦值。
   sp=comm.Parameters.Add("myreturn",SqlDbType.Int);
   sp.Direction=ParameterDirection.ReturnValue;
   //使用SqlDataAdapter將自動(dòng)完成數(shù)據(jù)庫(kù)的打開和關(guān)閉過(guò)程,并執(zhí)行相應(yīng)t-sql語(yǔ)句或存儲(chǔ)過(guò)程
   //如果存儲(chǔ)過(guò)程只是執(zhí)行相關(guān)操作,如級(jí)聯(lián)刪除或更新,使用SqlCommand的execute方法即可。
   SqlDataAdapter da=new SqlDataAdapter(comm);
   DataSet ds=new DataSet();
   da.Fill(ds);
   //在執(zhí)行完存儲(chǔ)過(guò)程之后,可得到輸出參數(shù)
   string myout=comm.Parameters["@output"].Value.ToString();  
   //打印輸出參數(shù):
   Response.Write("打印輸出參數(shù):"+myout);
   //打印存儲(chǔ)過(guò)程返回值
   myout=comm.Parameters["myreturn"].Value.ToString();
   Response.Write("存儲(chǔ)過(guò)程返回值:"+myout);
   this.DataGrid1.DataSource=ds;
   this.DataGrid1.DataBind();  
  }

2 存儲(chǔ)過(guò)程的使用最簡(jiǎn)版:
  private void sql_jyh()
  {
  //最簡(jiǎn)寫法,把存儲(chǔ)過(guò)程當(dāng)作t-sql語(yǔ)句來(lái)使用,語(yǔ)法為:exec 過(guò)程名 參數(shù)
  SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");
  string sql="execute proc_out 10,'12'";
  SqlCommand comm=new SqlCommand(sql,conn); 
  //使用SqlDataAdapter將自動(dòng)完成數(shù)據(jù)庫(kù)的打開和關(guān)閉過(guò)程,并執(zhí)行相應(yīng)t-sql語(yǔ)句或存儲(chǔ)過(guò)程
  //如果存儲(chǔ)過(guò)程只是執(zhí)行相關(guān)操作,如級(jí)聯(lián)刪除或更新,使用SqlCommand的execute方法即可。
  SqlDataAdapter da=new SqlDataAdapter(comm);
  DataSet ds=new DataSet();
  da.Fill(ds); 
  //綁定數(shù)據(jù)
  this.DataGrid1.DataSource=ds;
  this.DataGrid1.DataBind(); 
  }

總結(jié),對(duì)于SQL Server庫(kù)而言,無(wú)論用什么語(yǔ)言,都可以這樣來(lái)使用,即當(dāng)作普通查詢語(yǔ)句。

string sql="execute proc_out 10,'12'";

把這個(gè)sql作為參數(shù),在java或者C#中均能得到正確的執(zhí)行。這也是使用存儲(chǔ)過(guò)程的最簡(jiǎn)方法。

 

【編輯推薦】

  1. DB2 9存儲(chǔ)過(guò)程的規(guī)劃和實(shí)施技巧
  2. 使用PHP調(diào)用MySQL的存儲(chǔ)過(guò)程
  3. 分布式DBA:SQL存儲(chǔ)過(guò)程知識(shí)總結(jié)
責(zé)任編輯:book05 來(lái)源: chinaitlab
相關(guān)推薦

2012-04-23 15:10:18

ASP.NET

2009-07-21 13:30:59

JSP技術(shù)ASP.NET

2009-07-27 14:33:51

ASP.NET調(diào)用存儲(chǔ)

2009-07-01 09:27:22

ASP.NETJSPPHP

2009-07-28 14:30:35

ASP.NET JSP

2009-07-20 13:14:25

安裝ASP.NET A

2009-07-24 10:41:00

ASP.NET Ses

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-07-29 16:08:07

ASP和ASP.NET

2011-04-29 13:23:11

分頁(yè)數(shù)據(jù)存儲(chǔ)

2009-07-27 14:41:33

ASP.NET調(diào)用存儲(chǔ)

2015-08-19 14:18:56

SQLasp.net后臺(tái)調(diào)用

2009-07-22 18:03:00

ASP.NET ASP

2009-07-27 14:46:16

XML和ASP.NET

2009-07-24 09:02:24

ASP.Net RSA

2009-12-11 16:28:23

ASP.NET 2.0

2009-07-02 14:39:27

Session的值JSP Asp.net

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-11-06 09:23:41

ASP.NET高效分頁(yè)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)