在Java中調用帶參數的預存程序

來源:互聯網
上載者:User

標籤:

JDBC調用預存程序: CallableStatement在Java裡面調用預存程序,寫法那是相當的固定:Class.forName(....Connection conn = DriverManager.getConnection(..../***p是要調用的預存程序的名字,預存程序的4個參數,用4個?號預留位置代替*其餘地方寫法固定*/CallableStatement cstmt = conn.prepareCall("{call p(?,?,?,?)}");/***告訴JDBC,這些個參數,哪些是輸出參數,輸出參數的類型用java.sql.Types來指定*下面的意思是,第3個?和第4個?是輸出參數,類型是INTEGER的*Types後面具體寫什麼類型,得看你的預存程序參數怎麼定義的*/cstmt.registerOutParameter(3, Types.INTEGER);cstmt.registerOutParameter(4, Types.INTEGER);/***在我這裡第1個?和第2個?是輸入參數,第3個是輸出參數,第4個既輸入又輸出*下面是設定他們的值,第一個設為3,第二個設為4,第4個設定為5*沒設第3個,因為它是輸出參數*/cstmt.setInt(1, 3);cstmt.setInt(2, 4);cstmt.setInt(4, 5);//執行cstmt.execute();//把第3個參數的值當成int類型拿出來int three = cstmt.getInt(3);System.out.println(three);//把第4個參數的值當成int類型拿出來int four = cstmt.getInt(4);System.out.println(four);//用完別忘給人家關了,後開的先關cstmt.close();conn.close();JDBC調用預存程序,掌握這一個程式足夠了.以下是上面程式使用的預存程序的代碼,我用的是Oracle資料庫,不過不論是什麼資料庫,對於你的程式,JDBC這一端寫法都是一樣的.create or replace procedure p(v_a in number,v_b number,v_ret out number,v_temp in out number)isbeginif(v_a > v_b) thenv_ret := v_a;elsev_ret := v_b;end if;v_temp := v_temp + 1;end;

  

在Java中調用帶參數的預存程序

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.