<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    即興的靈感

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

    博客好友

    最新評論

    JAVA與Oracle存儲過程(一)

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

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

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

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

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

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

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



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

    posted on 2008-12-06 16:22 poetguo 閱讀(6303) 評論(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的存儲過程
    ---------------------------------------
    寒餓....  回復  更多評論   

    主站蜘蛛池模板: 精品亚洲成在人线AV无码| 亚洲福利中文字幕在线网址| 国产AV无码专区亚洲AV男同| 特级做a爰片毛片免费看| 免费观看国产小粉嫩喷水| 亚洲精华液一二三产区| 成人免费午夜无码视频| 久久亚洲精品无码aⅴ大香| 免费国产黄网站在线观看视频| 免费观看美女用震蛋喷水的视频| 亚洲va久久久噜噜噜久久男同| 亚洲精品美女久久久久| 999久久久免费精品播放| 亚洲精品美女在线观看播放| 99久久久精品免费观看国产| 91麻豆精品国产自产在线观看亚洲 | 成人免费无遮挡无码黄漫视频| 亚洲色精品三区二区一区| 黄网站免费在线观看| 国产成人免费永久播放视频平台| 亚洲色大成网站www永久| 91在线手机精品免费观看| 亚洲日本香蕉视频观看视频| 在线观看免费无码视频| 久久丫精品国产亚洲av| 成年女人A毛片免费视频| 免费永久看黄在线观看app| 一级一级一片免费高清| 国产l精品国产亚洲区在线观看| 99久在线国内在线播放免费观看| 亚洲a级片在线观看| 亚洲国产成人久久综合区| 日本一道本不卡免费| 亚洲 日韩经典 中文字幕| h视频在线观看免费完整版| 一本天堂ⅴ无码亚洲道久久| 大胆亚洲人体视频| 国内成人精品亚洲日本语音| 国产成人A亚洲精V品无码| 一级女人18毛片免费| 久久久久久久亚洲Av无码|