国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Java對存儲過程的調(diào)用方法

開發(fā) 后端
本文將介紹Java如何實(shí)現(xiàn)對存數(shù)過程的調(diào)用方法,作者用了幾個(gè)例子進(jìn)行了詳細(xì)的說明,簡單明了,非常適合初學(xué)者。

一、Java如何實(shí)現(xiàn)對存儲過程的調(diào)用:

A:不帶輸出參數(shù)的

  1. create procedure getsum  
  2. @n int =0<--此處為參數(shù)-->  
  3. as 
  4. declare @sum int<--定義變量-->  
  5. declare @i int 
  6. set @sum=0  
  7. set @i=0  
  8. while @i<=@n begin 
  9. set @sum=@sum+@i  
  10. set @i=@i+1  
  11. end 
  12. print 'the sum is '+ltrim(rtrim(str(@sum))) 

在SQL中執(zhí)行:

exec getsum 100

在JAVA中調(diào)用:

JAVA可以調(diào)用 但是在JAVA程序卻不能去顯示該存儲過程的結(jié)果 因?yàn)樯厦娴拇鎯^程的參數(shù)類型int 傳遞方式是in(按值)方式

  1. import java.sql.*;  
  2. public class ProcedureTest   
  3. {  
  4. public static void main(String args[]) throws Exception  
  5. {  
  6. //加載驅(qū)動(dòng)  
  7. DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());  
  8. //獲得連接  
  9. Connection conn=DriverManager.getConnection("jdbc:odbc:mydata","sa","");  
  10.  
  11.  
  12. //創(chuàng)建存儲過程的對象  
  13. CallableStatement c=conn.prepareCall("{call getsum(?)}");  
  14.  
  15. //給存儲過程的參數(shù)設(shè)置值  
  16. c.setInt(1,100); //將第一個(gè)參數(shù)的值設(shè)置成100  
  17.  
  18. //執(zhí)行存儲過程  
  19. c.execute();  
  20. conn.close();  
  21. }  
  22. }  
  23.  

B:帶輸出參數(shù)的

1:返回int

  1. alter procedure getsum  
  2. @n int =0,  
  3. @result int output 
  4. as 
  5. declare @sum int 
  6. declare @i int 
  7. set @sum=0  
  8. set @i=0  
  9. while @i<=@n begin 
  10. set @sum=@sum+@i  
  11. set @i=@i+1  
  12. end 
  13. set @result=@sum 

在查詢分析器中執(zhí)行:

  1. declare @myResult int 
  2. exec getsum 100,@myResult output 
  3. print @myResult 

在JAVA中調(diào)用:

  1. import java.sql.*;  
  2. public class ProcedureTest   
  3. {  
  4. public static void main(String args[]) throws Exception  
  5. {  
  6. //加載驅(qū)動(dòng)  
  7. DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());  
  8. //獲得連接  
  9. Connection conn=DriverManager.getConnection("jdbc:odbc:mydata","sa","");  
  10.  
  11.  
  12. //創(chuàng)建存儲過程的對象  
  13. CallableStatement c=conn.prepareCall("{call getsum(?,?)}");  
  14.  
  15. //給存儲過程的第一個(gè)參數(shù)設(shè)置值  
  16. c.setInt(1,100);  
  17.  
  18. //注冊存儲過程的第二個(gè)參數(shù)  
  19. c.registerOutParameter(2,java.sql.Types.INTEGER);  
  20.  
  21. //執(zhí)行存儲過程  
  22. c.execute();  
  23.  
  24. //得到存儲過程的輸出參數(shù)值  
  25. System.out.println (c.getInt(2));  
  26. conn.close();  
  27. }  
  28. }  

2:返回varchar

存儲過程帶游標(biāo):

在存儲過程中帶游標(biāo) 使用游標(biāo)不停的遍歷orderid

  1. create procedure CursorIntoProcedure  
  2. @pname varchar(8000) output 
  3. as 
  4. --定義游標(biāo)  
  5. declare cur cursor for select orderid from orders  
  6. --定義一個(gè)變量來接收游標(biāo)的值  
  7. declare @v varchar(5)  
  8. --打開游標(biāo)  
  9. open cur  
  10. set @pname=''--給@pname初值  
  11. --提取游標(biāo)的值  
  12. fetch next from cur into @v  
  13. while @@fetch_status=0  
  14. begin 
  15.  
  16.  
  17. set @pname=@pname+';'+@v  
  18. fetch next from cur into @v  
  19. end 
  20. print @pname  
  21. --關(guān)閉游標(biāo)  
  22. close cur  
  23. --銷毀游標(biāo)  
  24. deallocate cur 

執(zhí)行存儲過程:

  1. exec CursorIntoProcedure '' 

JAVA調(diào)用:

  1. import java.sql.*;  
  2. public class ProcedureTest   
  3. {  
  4. public static void main(String args[]) throws Exception  
  5. {  
  6. //加載驅(qū)動(dòng)  
  7. DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());  
  8. //獲得連接  
  9. Connection conn=DriverManager.getConnection("jdbc:odbc:mydata","sa","");  
  10. CallableStatement c=conn.prepareCall("{call CursorIntoProcedure(?)}");  
  11.  
  12.  
  13. c.registerOutParameter(1,java.sql.Types.VARCHAR);  
  14.  
  15. c.execute();  
  16.  
  17. System.out.println (c.getString(1));  
  18. conn.close();  
  19. }  
  20. }  

C:刪除數(shù)據(jù)的存儲過程

存儲過程:

  1. drop table 學(xué)生基本信息表  
  2. create table 學(xué)生基本信息表  
  3. (  
  4. StuID int primary key,  
  5. StuName varchar(10),  
  6. StuAddress varchar(20)  
  7. )  
  8. insert into 學(xué)生基本信息表 values(1,'三毛','wuhan')  
  9. insert into 學(xué)生基本信息表 values(2,'三毛','wuhan')  
  10. create table 學(xué)生成績表  
  11. (  
  12. StuID int,  
  13. Chinese int,  
  14. PyhSics int 
  15. foreign key(StuID) references 學(xué)生基本信息表(StuID)  
  16. on delete cascade  
  17. on update cascade  
  18. )   
  19. insert into 學(xué)生成績表 values(1,99,100)  
  20. insert into 學(xué)生成績表 values(2,99,100

創(chuàng)建存儲過程:

  1. create procedure delePro  
  2. @StuID int 
  3. as 
  4. delete from 學(xué)生基本信息表 where StuID=@StuID  
  5. --創(chuàng)建完畢  
  6. exec delePro 1 --執(zhí)行存儲過程  
  7. --創(chuàng)建存儲過程  
  8. create procedure selePro  
  9. as 
  10. select * from 學(xué)生基本信息表  
  11. --創(chuàng)建完畢  
  12. exec selePro --執(zhí)行存儲過程 

在JAVA中調(diào)用:

  1. import java.sql.*;  
  2. public class ProcedureTest   
  3. {  
  4. public static void main(String args[]) throws Exception  
  5. {  
  6. //加載驅(qū)動(dòng)  
  7. DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());  
  8. //獲得連接  
  9. Connection conn=DriverManager.getConnection("jdbc:odbc:mydata","sa","");  
  10.  
  11.  
  12. //創(chuàng)建存儲過程的對象  
  13. CallableStatement c=conn.prepareCall("{call delePro(?)}");  
  14.  
  15. c.setInt(1,1);  
  16.  
  17. c.execute();  
  18.  
  19. c=conn.prepareCall("{call selePro}");  
  20. ResultSet rs=c.executeQuery();  
  21.  
  22. while(rs.next())  
  23. {  
  24. String Stu=rs.getString("StuID");  
  25. String name=rs.getString("StuName");  
  26. String add=rs.getString("StuAddress");  
  27.  
  28. System.out.println ("學(xué)號:"+" "+"姓名:"+" "+"地址");  
  29. System.out.println (Stu+" "+name+" "+add);  
  30. }  
  31. c.close();  
  32. }  

D:修改數(shù)據(jù)的存儲過程

創(chuàng)建存儲過程:

  1. create procedure ModPro  
  2. @StuID int,  
  3. @StuName varchar(10)  
  4. as 
  5. update 學(xué)生基本信息表 set StuName=@StuName where StuID=@StuID 

執(zhí)行存儲過程:

  1. exec ModPro 2,'四毛' 

JAVA調(diào)用存儲過程:

  1. import java.sql.*;  
  2. public class ProcedureTest   
  3. {  
  4. public static void main(String args[]) throws Exception  
  5. {  
  6. //加載驅(qū)動(dòng)  
  7. DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());  
  8. //獲得連接  
  9. Connection conn=DriverManager.getConnection("jdbc:odbc:mydata","sa","");  
  10.  
  11.  
  12. //創(chuàng)建存儲過程的對象  
  13. CallableStatement c=conn.prepareCall("{call ModPro(?,?)}");  
  14.  
  15. c.setInt(1,2);  
  16. c.setString(2,"美女");  
  17.  
  18. c.execute();  
  19.  
  20. c=conn.prepareCall("{call selePro}");  
  21. ResultSet rs=c.executeQuery();  
  22.  
  23. while(rs.next())  
  24. {  
  25. String Stu=rs.getString("StuID");  
  26. String name=rs.getString("StuName");  
  27. String add=rs.getString("StuAddress");  
  28.  
  29. System.out.println ("學(xué)號:"+" "+"姓名:"+" "+"地址");  
  30. System.out.println (Stu+" "+name+" "+add);  
  31. }  
  32. c.close();  
  33. }  

E:查詢數(shù)據(jù)的存儲過程(模糊查詢)

存儲過程:

  1. create procedure FindCusts  
  2. @cust varchar(10)  
  3. as 
  4. select customerid from orders where customerid   
  5. like '%'+@cust+'%' 

執(zhí)行:

  1. execute FindCusts 'alfki' 

在JAVA中調(diào)用:

  1. import java.sql.*;  
  2. public class ProcedureTest   
  3. {  
  4. public static void main(String args[]) throws Exception  
  5. {  
  6. //加載驅(qū)動(dòng)  
  7. DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());  
  8. //獲得連接  
  9. Connection conn=DriverManager.getConnection("jdbc:odbc:mydata","sa","");  
  10.  
  11.  
  12. //創(chuàng)建存儲過程的對象  
  13. CallableStatement c=conn.prepareCall("{call FindCusts(?)}");  
  14. c.setString(1,"Tom");  
  15.  
  16. ResultSet rs=c.executeQuery();  
  17.  
  18. while(rs.next())  
  19. {  
  20. String cust=rs.getString("customerid");   
  21. System.out.println (cust);  
  22. }  
  23. c.close();  
  24. }  

F:增加數(shù)據(jù)的存儲過程

存儲過程:

  1. create procedure InsertPro  
  2. @StuID int,  
  3. @StuName varchar(10),  
  4. @StuAddress varchar(20)  
  5. as 
  6. insert into 學(xué)生基本信息表 values(@StuID,@StuName,@StuAddress) 

調(diào)用存儲過程:

  1. exec InsertPro 5,'555','555' 

在JAVA中執(zhí)行:

  1. import java.sql.*;  
  2. public class ProcedureTest   
  3. {  
  4. public static void main(String args[]) throws Exception  
  5. {  
  6. //加載驅(qū)動(dòng)  
  7. DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());  
  8. //獲得連接  
  9. Connection conn=DriverManager.getConnection("jdbc:odbc:mydata","sa","");  
  10.  
  11.  
  12. //創(chuàng)建存儲過程的對象  
  13. CallableStatement c=conn.prepareCall("{call InsertPro(?,?,?)}");  
  14. c.setInt(1,6);  
  15. c.setString(2,"Liu");  
  16. c.setString(3,"wuhan");  
  17.  
  18. c.execute();  
  19.  
  20. c=conn.prepareCall("{call selePro}");  
  21. ResultSet rs=c.executeQuery();  
  22.  
  23. while(rs.next())  
  24. {  
  25. String stuid=rs.getString("StuID");   
  26. String name=rs.getString("StuName");   
  27. String address=rs.getString("StuAddress");   
  28. System.out.println (stuid+" "+name+" "+address);  
  29. }  
  30. c.close();  
  31. }  

G:在JAVA中創(chuàng)建存儲過程 并且在JAVA中直接調(diào)用

  1. import java.sql.*;  
  2. public class ProcedureTest   
  3. {  
  4. public static void main(String args[]) throws Exception  
  5. {  
  6. //加載驅(qū)動(dòng)  
  7. DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());  
  8. //獲得連接  
  9. Connection conn=DriverManager.getConnection("jdbc:odbc:mydata","sa","");  
  10.  
  11.  
  12. Statement stmt=conn.createStatement();  
  13. //在JAVA中創(chuàng)建存儲過程  
  14. stmt.executeUpdate("create procedure OOP as select * from 學(xué)生成績表");  
  15.  
  16.  
  17. CallableStatement c=conn.prepareCall("{call OOP}");  
  18.  
  19. ResultSet rs=c.executeQuery();  
  20. while(rs.next())  
  21. {  
  22. String chinese=rs.getString("Chinese");  
  23.  
  24. System.out.println (chinese);  
  25. }  
  26. conn.close();  
  27.  
  28. }  
  29. }  

原文鏈接:http://technicalsearch.iteye.com/blog/1433293

【編輯推薦】

  1. Java初學(xué)者都必須理解的六大問題
  2. 深入Java關(guān)鍵字null
  3. Java 5線程池使用
  4. 淺析Java抽象類和接口的比較
  5. Java類和對象的初始化順序
責(zé)任編輯:林師授 來源: miaowei的博客
相關(guān)推薦

2010-10-29 16:12:51

Oracle存儲過程

2010-10-09 16:26:59

mysql存儲過程

2009-09-17 11:32:52

LINQ調(diào)用存儲過程

2009-08-06 18:02:22

存儲過程

2017-09-04 11:48:56

MybatisOracle存儲過程

2010-06-04 13:50:24

MySQL存儲過程

2009-06-19 16:22:55

Java存儲過程

2009-06-17 10:33:17

Hibernate 存

2010-05-19 14:13:12

MySQL存儲過程

2011-07-22 13:47:23

存儲過程

2010-11-12 09:46:55

Sql Server存

2011-09-01 13:43:23

VC調(diào)用SQL Ser

2010-04-15 17:31:10

Oracle存儲過程

2012-05-10 11:17:23

JavaSQL Server

2010-07-26 14:43:31

SQL Server存

2009-07-22 15:58:34

JDBC調(diào)用Oracl

2010-11-10 15:16:14

Sql Server分

2009-07-08 17:17:16

JDBC調(diào)用存儲過程

2009-09-15 11:08:01

LinQ調(diào)用存儲過程

2009-01-19 08:59:04

PHP調(diào)用MySQL存儲過程MySQLi擴(kuò)展
點(diǎn)贊
收藏

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

五月香视频在线观看| 欧美极品一区二区三区| 国产精品乱子久久久久| 亚洲一区二区精品在线观看| 欧美日韩爱爱| 久久久精品视频成人| а√天堂中文在线资源8| 欧美日韩在线播放三区四区| 在线观看免费av网| 一区二区三区产品免费精品久久75| 91免费高清视频| 大伊香蕉精品在线品播放| 中文字幕日韩专区| 久久91导航| 亚洲国产成人精品久久| a级网站在线播放| 欧美日韩国产美| 成人在线免费视频| 在线视频国产一区| 欧美男男同志| 日韩欧美国产骚| 欧美偷拍视频| 欧美日韩免费一区二区三区视频| 日韩av成人| 欧美性色综合网| 麻豆传媒视频在线观看免费| 91精品欧美福利在线观看 | 婷婷亚洲综合| 91精品国产综合久久久久久蜜臀| 久久中文亚洲字幕| 国产亚洲欧美另类一区二区三区| 欧美日韩免费| 天天人人精品| 成人91在线观看| 女性隐私黄www网站视频| 国产精品午夜电影| 丁香花高清电影在线观看完整版| 五月天精品一区二区三区| 成年人视频在线免费观看| 欧美mv和日韩mv的网站| 超薄肉色丝袜脚交一区二区| 欧美激情一区二区三区在线视频观看| 精品国产乱码久久久久久果冻传媒 | 无需播放器的av| 亚洲欧洲制服丝袜| 中文字幕一区二区三区免费视频| 亚洲国产精品久久久久婷婷884 | 青青热久免费精品视频在线18| 精品国产一区二区在线| 韩国精品福利一区二区三区| 国产噜噜噜噜噜久久久久久久久| 精品综合久久久久久97| 国产在线观看免费网站| 亚洲制服av| 亚洲a中文字幕| 国产69精品久久| 日韩欧美的一区| 精精国产xxxx视频在线| 欧美性猛交xxxxx免费看| 亚洲综合婷婷久久| 国产精品久久午夜| 91se在线观看| 波多野结衣一区二区三区| 福利视频一区二区三区| 六月丁香婷婷色狠狠久久| 蜜臀av免费观看| 欧美日韩亚洲另类| www.久久热| 国产精品视频在线免费观看| 99在线精品免费| 国际av在线| 超在线视频97| 欧美亚洲一区| 少妇网站在线观看| 日韩精品影音先锋| 超碰精品在线| 亚洲春色在线| 亚洲成人中文在线| 久久久人成影片一区二区三区在哪下载| 日韩av电影国产| 高清国产午夜精品久久久久久| 色天堂在线视频| 欧美黑人性猛交| 狠狠色综合日日| 理论在线观看| 91国产中文字幕| 国产麻豆精品在线| 国产综合视频一区二区三区免费| 久久国产精品久久精品| 久久国产精品亚洲77777| 好紧好硬好湿我太爽了| 国产亚洲视频中文字幕视频| 欧美区日韩区| 丁香资源影视免费观看| 亚洲网在线观看| 久久久久久久尹人综合网亚洲| 一级黄色av| 久久久久久久一| 成人黄色av网站在线| 欧美伦理免费在线| 国产伦精品一区二区三区四区免费| 日本一区二区高清| 久久久加勒比| 四虎4hu永久免费入口| 在线播放视频一区| 欧美激情视频一区二区三区在线播放 | 日韩三级精品| 特级毛片在线免费观看| 欧美亚洲图片小说| 米奇777超碰欧美日韩亚洲| 国产精品av免费观看| 欧美日韩精品免费| 国产精品久久久久久久| 91精品无人成人www| 久久精品一区中文字幕| 国产一区二区三区免费| а√天堂官网中文在线| 亚洲va男人天堂| 午夜欧美2019年伦理| 日韩欧美国产大片| 中文字幕第88页| 欧美激情精品久久久久久蜜臀| 国产成人午夜电影网| a√中文在线观看| 亚洲永久激情精品| 亚洲加勒比久久88色综合| 肉色丝袜一区二区| av电影免费在线看| 尤物一区二区三区| 日韩精品一区二区三区第95| 精品一区二区三区在线观看| 女人黄色免费在线观看| 日韩国产美国| 日本私人网站在线观看| 2014亚洲精品| 亚洲制服丝袜av| 欧美在线资源| 中文字幕亚洲乱码| 日韩成人激情在线| 91精品秘密在线观看| 成人午夜激情| 国产精品美女久久久久久2018| 九九九精品视频| 国产av人人夜夜澡人人爽麻豆| 一道本无吗dⅴd在线播放一区| 国产伦精品一区二区三区免费 | 91九色国产视频| 欧美吞精做爰啪啪高潮| 久久精品综合| 欧美日韩美女| 99精品视频在线看| 69av视频在线播放| 欧美日韩激情视频| 欧美午夜一区| 国产丝袜在线| 欧美高清中文字幕| 久久露脸国产精品| 欧美三级xxx| 日本特黄久久久高潮| 九七影院97影院理论片久久 | 成人激情午夜影院| av成人资源| 天堂中文在线8| 欧美一区二区三区电影在线观看| 日韩av网站在线| 国产日本亚洲高清| 五月天久久久| 99爱在线观看| 久久婷婷国产91天堂综合精品| 国产精品网址在线| 日韩亚洲欧美一区| 久久亚区不卡日本| 成人免费电影网址| bl视频在线免费观看| 精品久久久久久无码国产| 国产在线视频2019最新视频| 欧美大片一区二区| 久久人人爽人人爽| 欧美日韩国产在线一区| 桃花岛tv亚洲品质| 性史性dvd影片农村毛片| 久久久久无码国产精品一区| 播播国产欧美激情| 色女孩综合影院| 成人一区二区三区在线观看| 欧美精品一二| 电影在线观看一区| 国产视频二区| 日韩三级电影网站| 91sa在线看| 亚洲福利视频久久| 亚洲欧洲一区二区在线播放| 久久国产精品毛片| 精品成av人一区二区三区| 欧美性xxx| 免费资源在线观看| 日韩一级片播放| 老牛影视免费一区二区| 欧美极品少妇xxxxx| 欧美tickling网站挠脚心|