成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談Java存儲過程調用

開發 后端
這里為大家談談Java存儲過程調用,我們可以利用Java存儲過程簡化數據庫操作, 利用Java存儲過程溝通SQL、XML、Java、J2EE和Web服務。

創建需要的測試表:createtableTest(tidvarchar2(10),tnamevarchar2(10));

第一種情況:無返回值.

  1. createorreplaceproceduretest_a(param1invarchar2,param2invarchar2)as  
  2. begin  
  3. insertintotestvalue(param1,param2);  
  4. end; 

Java調用代碼:

  1. packagecom.test;  
  2. importjava.sql.*;  
  3. importjava.io.*;  
  4. importjava.sql.*;  
  5. publicclassTestProcA  
  6. {  
  7. publicTestProcA(){  
  8. }  
  9. publicstaticvoidmain(String[]args)  
  10. {  
  11. ResultSetrs=null;  
  12. Connectionconn=null;  
  13. CallableStatementproc=null;  
  14. try{  
  15. Class.forName("oracle.jdbc.driver.OracleDriver");  
  16. conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:test","test","test");  
  17. proc=conn.prepareCall("{calltest_a(?,?)}");  
  18. proc.setString(1,"1001");  
  19. proc.setString(2,"TestA");  
  20. proc.execute();  
  21. }catch(Exceptione){  
  22. e.printStackTrace();  
  23. }finally{  
  24. try{  
  25. if(null!=rs){  
  26. rs.close();  
  27.  
  28. if(null!=proc){  
  29. proc.close();  
  30. }  
  31. if(null!=conn){  
  32. conn.close();  
  33. }  
  34. }  
  35. }catch(Exceptionex){  
  36. }  
  37. }  
  38. }  

第二種情況:有返回值的存儲過程(返回值非列表).

存儲過程為:

  1. createorreplaceproceduretest_b(param1invarchar2,param2outvarchar2)  
  2. as  
  3. begin  
  4. selecttnameintoparam2fromtestwheretid=param1;  
  5. end; 

Java調用代碼:

  1. packagecom.test;  
  2. importjava.sql.*;  
  3. importjava.io.*;  
  4. importjava.sql.*;  
  5. publicclassTestProcB  
  6. {  
  7. publicTestProcB(){  
  8. }  
  9. publicstaticvoidmain(String[]args)  
  10. {  
  11. Connectionconn=null;  
  12. CallableStatementproc=null;  
  13. try{  
  14. Class.forName("oracle.jdbc.driver.OracleDriver");  
  15. conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:test","test","test");  
  16. proc=conn.prepareCall("{calltest_b(?,?)}");  
  17. proc.setString(1,"1001");  
  18. proc.registerOutParameter(2,Types.VARCHAR);  
  19. proc.execute();  
  20. System.out.println("Outputis:"+proc.getString(2));  
  21. }catch(Exceptione){  
  22. e.printStackTrace();  
  23. }finally{  
  24. try{  
  25.  
  26. if(null!=proc){  
  27. proc.close();  
  28. }  
  29.  
  30. if(null!=conn){  
  31. conn.close();  
  32. }  
  33.  
  34. }catch(Exceptionex){  
  35.  
  36. }  
  37. }  
  38. }  

第三種情況:返回列表.

由于oracle存儲過程沒有返回值,它的所有返回值都是通過out參數來替代的,列表同樣也不例外,但由于是集合,所以不能用一般的參數,必須要用pagkage了.要分兩部分來寫:

  1. createorreplacepackagetpackageas  
  2. typet_cursorisrefcursor;  
  3. proceduretest_c(c_refoutt_cursor);  
  4. end;  
  5.  
  6. createorreplacepackagebodytpackageas  
  7. proceduretest_c(c_refoutt_cursor)is  
  8. begin  
  9. openc_refforselect*fromtest;  
  10. endtest_c;  
  11. endtpackage; 

Java調用代碼:

  1. packagecom.test;  
  2. importjava.sql.*;  
  3. importjava.io.*;  
  4. importjava.sql.*;  
  5. publicclassTestProcB  
  6. {  
  7. publicTestProcB(){  
  8. }  
  9. publicstaticvoidmain(String[]args)  
  10. {  
  11. Connectionconn=null;  
  12. CallableStatementproc=null;  
  13. ResultSetrs=null;  
  14. try{  
  15. Class.forName("oracle.jdbc.driver.OracleDriver");  
  16. conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:test","test","test");  
  17. proc=conn.prepareCall("{?=calltpackage.test_b(?)}");  
  18.  
  19. proc.registerOutParameter(1,OracleTypes.CURSOR);  
  20. proc.execute();  
  21. while(rs.next()){  
  22. System.out.println(rs.getObject(1)+"\t"+rs.getObject(2));  
  23. }  
  24. }catch(Exceptione){  
  25. e.printStackTrace();  
  26. }finally{  
  27. try{  
  28. if(null!=rs){  
  29. rs.close();  
  30. if(null!=proc){  
  31. proc.close();  
  32. }  
  33. if(null!=conn){  
  34. conn.close();  
  35. }  
  36. }  
  37. }catch(Exceptionex){  
  38. }  
  39. }  
  40. }  

Hibernate調用oracle存儲過程

  1. this.pnumberManager.getHibernateTemplate().execute(  
  2.  newHibernateCallback()...{  
  3. publicObjectdoInHibernate(Sessionsession)  
  4. throwsHibernateException,SQLException...{  
  5. CallableStatementcs=session.connection().prepareCall("{callmodifyapppnumber_remain(?)}");  
  6. cs.setString(1,foundationid);  
  7. cs.execute();  
  8. returnnull;  
  9.   }  
  10.  }); 

【編輯推薦】

  1. Java語言對properties資源文件的處理
  2. Java連接MySQL中文亂碼處理
  3. 在Java應用程序中使用Jfreechart配置
  4. Java虛擬機內部構成淺析
  5. 淺談Java線程的生命周期
責任編輯:彭凡 來源: CSDN
相關推薦

2009-09-15 11:08:01

LinQ調用存儲過程

2011-07-22 13:47:23

存儲過程

2010-11-12 09:46:55

Sql Server存

2009-07-22 15:58:34

JDBC調用Oracl

2012-03-01 13:34:02

Java

2009-06-17 10:33:17

Hibernate 存

2009-07-08 17:17:16

JDBC調用存儲過程

2010-10-29 16:12:51

Oracle存儲過程

2010-04-16 11:03:02

Oracle存儲過程

2011-06-17 17:37:16

JavaSQL Server

2012-05-10 11:17:23

JavaSQL Server

2010-10-09 16:26:59

mysql存儲過程

2010-11-10 15:16:14

Sql Server分

2009-06-23 08:12:48

J2EE調用存儲過程

2009-01-19 08:59:04

PHP調用MySQL存儲過程MySQLi擴展

2009-09-17 11:32:52

LINQ調用存儲過程

2011-08-12 11:22:53

Oracle存儲過程Java

2011-08-16 16:59:58

PLSQL分頁存儲過程Java

2009-06-22 11:04:00

Jdbc存儲過程

2010-04-16 11:11:46

Oracle存儲過程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一本色道精品久久一区二区三区 | 亚洲欧美日韩激情 | 99精品视频在线观看 | 一区欧美 | 韩日一区| 二区国产 | 国产精品成av人在线视午夜片 | 国产精品1区 | 美女久久 | 久久午夜视频 | 亚洲人a| 国产真实乱全部视频 | 91视频www.| 九九久久久 | 久久久久久久一区 | 欧美视频一区二区三区 | 欧美黄在线观看 | 国产精品久久久久久久久久免费看 | 欧美成人影院在线 | 国产精品自拍视频网站 | xxxxxx国产| 国产午夜视频 | 91精品一区二区三区久久久久 | 亚洲欧美中文字幕 | 户外露出一区二区三区 | 日韩精品| 九九热最新视频 | 在线免费观看黄网 | 日韩aⅴ在线观看 | 免费中文字幕 | 国内精品久久久久久 | 在线成人av | 国产在线观看一区二区三区 | 夜夜操操操 | 日本在线观看视频 | 黄色大片免费网站 | 人人艹人人 | 亚洲成人精选 | 久久久日韩精品一区二区三区 | 毛片a区 | 日本色婷婷|