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

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

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

    posts - 42,comments - 83,trackbacks - 0
            很多情況下,在執行數據添加、更新、查詢的時候,為了降低應用服務器(比如weblogic)的負荷,我們可以將復雜的數據計算邏輯放在database端,這樣可以充分利用database的資源,提高數據計算速度。對于數據查詢,我們需要有返回值,那么這些帶有返回值的procedure在java上怎么調用呢?
    1:首先,我們創建一個簡單的數據表,
        create table address(addr varchar2(40));

    2:然后我們可以創建一個插入數據的過程(當然也可以直接手工添加),如下,
        create or replace procedure addAddress(addr varchar2) as
        begin
            insert into address values(addr);
        end addAddress;

    3: 接下來,我們先創建一個帶有In/Out的存儲過程,如下,
        create or replace procedure getAddr(inAddr in varchar2, outAddr out varchar2) as
        begin
            select addr into outAddr from address where addr=inAddr;
        end getAddr;
    這個存儲過程可以在SQLPlus中以如下的方式調用,
        DECLARE
               TMP varchar2(40);
        BEGIN
               TMP:=1;
               getAddr('test',TMP);
        END ;

    4:好了,數據庫的東西創建完了,我們現在來看看如何通過Java的CallableStatement去掉用這個過程呢? 代碼如下:
     1     public void procTest()
     2     {
     3         try{
     4             Connection conn = getConnection("t3://localhost:7001", NonXA_NotSupportGTX_10);
     5             System.out.println("connections are retrieved!");
     6             CallableStatement stmt = conn.prepareCall("call getAddr(?,?)");
     7             stmt.registerOutParameter(2,java.sql.Types.VARCHAR);
     8             stmt.setString(1"test");
     9             stmt.executeUpdate();
    10             String val = stmt.getString(2);
    11             System.out.println("val: " + val);
    12             conn.close();
    13         }catch(Exception e){
    14             e.printStackTrace();
    15         }
    16     }
        這個procedure有兩個bind varible,第一個是input參數,第二個為返回值。調用這個過程前,我們首先需要將返回值在callable statement中register,即stmt.registerOutParameter(2,java.sql.Types.VARCHAR); 在執行statement前,我們需要將input參數輸入,即stmt.setString(1"test"); callable statement執行后,我們可以通過index來獲取返回值了,即String val = stmt.getString(2);

    posted on 2009-05-08 13:19 走走停停又三年 閱讀(1314) 評論(0)  編輯  收藏 所屬分類: Database
    主站蜘蛛池模板: 免费在线看片网站| 好爽又高潮了毛片免费下载| vvvv99日韩精品亚洲| 亚洲欧美熟妇综合久久久久| 国产精品美女午夜爽爽爽免费| 激情内射亚洲一区二区三区爱妻| 18禁网站免费无遮挡无码中文| 亚洲天堂福利视频| 国产片AV片永久免费观看| 亚洲乱码卡三乱码新区| 免费不卡视频一卡二卡| 亚洲成a人片在线看| a级毛片无码免费真人| 亚洲成AV人片高潮喷水| 亚洲国产天堂久久综合| 中文字幕在线视频免费观看| 亚洲女同成av人片在线观看| 老汉精品免费AV在线播放| 亚洲国产精品成人精品软件| 午夜爱爱免费视频| 天堂亚洲免费视频| 99久久亚洲精品无码毛片| 在线观看特色大片免费视频| 国产偷国产偷亚洲清高APP| 亚洲精品人成无码中文毛片| 最近免费中文字幕MV在线视频3| 亚洲系列国产精品制服丝袜第| 免费看大黄高清网站视频在线| selaoban在线视频免费精品| 亚洲精品国产第1页| 国产成人综合久久精品免费| 免费无码一区二区三区蜜桃| 亚洲综合校园春色| 亚洲国产精品人人做人人爱| 无码人妻丰满熟妇区免费| 久久亚洲国产最新网站| 久久亚洲国产精品五月天婷| 亚洲黄色免费网址| 无码AV动漫精品一区二区免费| 在线免费观看亚洲| 男人的天堂亚洲一区二区三区|