- 2
- 0
- 约1.22万字
- 约 12页
- 2017-02-09 发布于重庆
- 举报
JAVA中对存储过程的调用方法
JAVA中对存储过程的调用方法
A:不带输出参数的 z ]3h ?? ---------------不带输出参数的---------------------------------- uLX8oRxZ ?create procedure getsum @BFd^` ?@n int =0--此处为参数-- FQqL;D*P3 ?as 1 xJ- ) ?declare @sum int--定义变量-- EHO)XSg ?declare @i int D*asQx$?Pf ?set @sum=0 tw @IXc ?set @i=0 c)~36 W ?while @i=@n begin a du 4,J[ ?set @sum=@sum+@i @[z~ @GTs ?set @i=@i+1 ~ET/51 ?end %olWaT7Q ?print the sum is +ltrim(rtrim(str(@sum))) AmBh t;[ ?92;IBfH| ?HG )b ?--------------在SQL中执行:-------------------- W|;s@6*W ?exec getsum 100 ur^$[vb] ?AN{06@Oe ?HY12Q[h! ?------------在JAVA中调用:--------------------- ,t0BD8Fd ?JAVA可以调用 但是在JAVA程序却不能去显示该存储过程的结果 因为上面的存储 j?@ 1l=) ?过程的参数类型int 传递方式是in(按值)方式 5XQ JL ?import java.sql.*; c@bNPq2 ?public class ProcedureTest 7c{1)]4r ?{ G*{2}+ 71 ?public static void main(String args[]) throws Exception $d9u\GF7 ?{ Vcu\rwQ8 ?//加载驱动 nW?c 1Y~p ?DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver()); a:pv^cq! ?//获得连接 -;-*roSJ{ ?Connection conn=DriverManager.getConnection(jdbc:odbc:mydata,sa,); NR hRU8 ?9Ra% M ?l2H:$TXP[ ?? ? //创建存储过程的对象 b/j{GvQ[ ?? ? CallableStatement c=conn.divpareCall({call getsum(?)}); a=)JL$k* ?? ? )sc9*gL ?? ? //给存储过程的参数设置值 ,L;3T U ?? ? c.setInt(1,100); //将第一个参数的值设置成100 ^}+ QaN^ ?? ? {~bP(G0 ?? ? //执行存储过程 /I|tc[k ?? ? c.execute(); BR!8xBt ?? ? conn.close(); h?hDx%W7 ?} bxf0} gS ?} ?.z L! ?? A[a|x0*P ?B:带输出参数的 /YZh.} A ?? 1:返回int d]{u =nt ?? ? -------------------------带输出参数的---------------- unwcs^Qfl ?alter procedure getsum )MA)~~X+ ?@n int =0, :8Bz$+U ?@result int output * \ CR ?as - !#V: ?declare @sum int ZgXE`=Y9 ?declare @i int *KdC(IX ?set @sum=0 VpS`Ua ?set @i=0 ]KI OY ?while @i=@n begin E)tDZkg: ?set @sum=@sum+@i q+ 09\J ?set @i=@i+1 r8^;UEE ?end KT xe8hU ?set @result=@sum u3 Y:L[Z ?? -------------------在查询分析器中执行------------ `%nw?fju ?declare @myResult int jg%SdTwN ?e
原创力文档

文档评论(0)