即興的靈感

          思維是一種藝術; 藝術需要靈感。

          博客好友

          最新評論

          JAVA與Oracle存儲過程(一)

          ???在大型數(shù)據(jù)庫系統(tǒng)中,有兩個很重要作用的功能,那就是存儲過程和觸發(fā)器。在數(shù)據(jù)庫系統(tǒng)中無論是存儲過程還是觸發(fā)器,都是通過SQL 語句和控制流程語句的集合來完成的。相對來說,數(shù)據(jù)庫系統(tǒng)中的觸發(fā)器也是一種存儲過程。存儲過程在數(shù)據(jù)庫中運算時自動生成各種執(zhí)行方式,因此,大大提高了對其運行時的執(zhí)行速度。在大型數(shù)據(jù)庫系統(tǒng)如Oracle、SQL Server中都不僅提供了用戶自定義存儲過程的功能,同時也提供了許多可作為工具進行調用的系統(tǒng)自帶存儲過程。
          ???所謂存儲過程(Stored Procedure),就是一組用于完成特定數(shù)據(jù)庫功能的SQL 語句集,該SQL語句集經(jīng)過編譯后存儲在數(shù)據(jù)庫系統(tǒng)中。在使用時候,用戶通過指定已經(jīng)定義的存儲過程名字并給出相應的存儲過程參數(shù)來調用并執(zhí)行它,從而完成一個或一系列的數(shù)據(jù)庫操作。
          ???由于J2EE體系一般建立大型的企業(yè)級應用系統(tǒng),而一般都配備大型數(shù)據(jù)庫系統(tǒng)如Oracle或者SQL Server,在本文《JAVA與Oracle存儲過程》中將介紹JAVA跟Oracle存儲過程之間的相互應用跟相互間的各種調用。
          ???一、JAVA調用Oracle存儲過程
          ???JAVA跟Oracle之間最常用的是JAVA調用Oracle的存儲過程,以下簡要說明下JAVA如何對Oracle存儲過程進行調用。
          ???Ⅰ、不帶輸出參數(shù)情況
          ??????過程名稱為pro1參數(shù)個數(shù)1個數(shù)據(jù)類型為整形數(shù)據(jù)

          import ?java.sql. * ;?
          public ? class ?ProcedureNoArgs??
          ? {?
          public ? static ? void ?main(String?args[])? throws ?Exception?
          {?
          ??
          // 加載Oracle驅動?
          ??
          DriverManager.registerDriver( new ?oracle.jdbc.driver.OracleDriver());?
          ??
          // 獲得Oracle數(shù)據(jù)庫連接?
          ??
          Connection?conn = DriverManager.getConnection( " jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd " );?

          ????
          // 創(chuàng)建存儲過程的對象?
          ????CallableStatement?c = conn.divpareCall( " {call?pro1(?)} " );?
          ?????
          ????
          // 給Oracle存儲過程的參數(shù)設置值?,將第一個參數(shù)的值設置成188?
          ????c.setInt( 1 , 188 );?
          ?????
          ????
          // 執(zhí)行Oracle存儲過程?
          ????c.execute();?
          ????conn.close();?
          }
          ?
          }
          ?

          ???Ⅱ、帶輸出參數(shù)的情況
          ???過程名稱為pro2參數(shù)個數(shù)2個數(shù)據(jù)類型為整形數(shù)據(jù),返回值為整形類型
          import?java.sql.*;?
          public?class?ProcedureWithArgs??
          ? {?
          public?static?void?main(String?args[])?throws?Exception?
          {?
          ??
          //加載Oracle驅動?
          ??
          DriverManager.registerDriver(new?oracle.jdbc.driver.OracleDriver());?
          ??
          //獲得Oracle數(shù)據(jù)庫連接?
          ??
          Connection?conn = DriverManager.getConnection("jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd ");?

          ????
          //創(chuàng)建Oracle存儲過程的對象,調用存儲過程?
          ????CallableStatement?c=conn.divpareCall("{call?pro2(?,?)}");?
          ?????
          ????
          //給Oracle存儲過程的參數(shù)設置值?,將第一個參數(shù)的值設置成188?
          ????c.setInt(1,188);?
          ????//注冊存儲過程的第二個參數(shù)??
          ????? c.registerOutParameter(2,java.sql.Types.INTEGER);

          ????
          //執(zhí)行Oracle存儲過程?
          ????c.execute();?
          ???? ?//得到存儲過程的輸出參數(shù)值并打印出來
          ????? System.out.println (c.getInt(2));
          ???
          ????conn.close();?
          }
          ?
          }
          ?

          ???以上即是在JAVA中調用Oracle存儲過程的最簡單的實例,接下來將介紹有關JAVA跟Oracle存儲過程的其他方面內容。
          ???
          轉載請聲明出處,必究。



          ?
          鳳凰涅槃/浴火重生/馬不停蹄/只爭朝夕
          ???? 隱姓埋名/低調華麗/簡單生活/完美人生

          posted on 2008-12-06 16:22 poetguo 閱讀(6298) 評論(3)  編輯  收藏 所屬分類: OracleJAVA

          評論

          # re: JAVA與Oracle存儲過程(一) 2008-12-06 17:53 OracleSu

          學習Oracle中,多多指教  回復  更多評論   

          # re: JAVA與Oracle存儲過程(一) 2008-12-06 23:57 beyond

          還可以,知道java可以操作orcale的存儲過程  回復  更多評論   

          # re: JAVA與Oracle存儲過程(一)[未登錄] 2008-12-08 16:35 zxbyh

          2008-12-06 23:57 by beyond
          還可以,知道java可以操作orcale的存儲過程
          ---------------------------------------
          寒餓....  回復  更多評論   

          主站蜘蛛池模板: 滦南县| 淳安县| 富阳市| 谢通门县| 册亨县| 肃宁县| 北辰区| 从化市| 光泽县| 麻栗坡县| 容城县| 沁水县| 丹东市| 克东县| 昌乐县| 岳阳市| 英德市| 石城县| 垦利县| 临泉县| 临城县| 米脂县| 永定县| 玉树县| 沙坪坝区| 政和县| 大厂| 绍兴县| 长宁县| 翼城县| 广德县| 彭州市| 宝鸡市| 临城县| 呼和浩特市| 馆陶县| 冀州市| 巴彦淖尔市| 芜湖县| 固阳县| 赞皇县|