hello world

          隨筆 - 2, 文章 - 63, 評論 - 0, 引用 - 0
          數據加載中……

          JAVA調用數據庫的存儲過程

          下午調試了一個調用數據庫存儲過程的片段,居然弄了兩三個小時,下邊小小總結一下。
          關鍵代碼:
          1??? String sql="CALL pkg_rfts_global.sp_gui_delete_Object(?)";
          2????CallableStatement inoutProc=(CallableStatement) conn.prepareCall(sql);
          3????inoutProc.registerOutParameter(1,4);
          4????inoutProc.setInt(1,9450);
          5??? inoutProc.execute();
          6????inoutProc.close();

          整個過程就如上了,sql就是一個存儲字符串的變量;con是事先已經和數據庫連接好的連接(Connection類);inoutProc就是CallableStatement 類的一個實例;
          第一句話就是要執行的命令語句,pkg_rfts_global是包名,sp_gui_delete_Object是存儲過程名,看老師給我們演示時還有在最前面加入登陸用戶名的,這里沒有也通過了,可能是已經登陸的原因。小括號里是變量,這里是在存儲過程中定義的,這個存儲過程就定義了一個變量。第三行是設置變量輸出時的大小,如registerOutParameter方法指定了上述的第一個參數大小為4;第三句話是設置參數,setInt方法設置了第一個參數的整形值為9450;第五句話開始執行這個語句;最后關閉。
          出現的問題(因為是第一次用,很弱智的說):
          1、沒有加CALL;
          2、在語句后面多了一個“;”;

          再貼幾句話:
          ??????????????? cs.registerOutParameter(2, java.sql.Types.INTEGER);
          ??????????????? cs.registerOutParameter(4, java.sql.Types.VARCHAR);
          ??????????????? cs.registerOutParameter(10, java.sql.Types.FLOAT);
          ??????????????? cs.registerOutParameter(20, java.sql.Types.VARCHAR);
          cs和inoutProc是一個類型了,這是在定義變量輸出時大小的另外一種方法。

          posted on 2008-07-22 15:46 聽風 閱讀(286) 評論(0)  編輯  收藏 所屬分類: JAVA

          主站蜘蛛池模板: 溆浦县| 沐川县| 龙陵县| 张家界市| 会昌县| 太和县| 泽州县| 阜新市| 台中市| 肇庆市| 九台市| 客服| 汪清县| 定边县| 潢川县| 黄陵县| 赤城县| 卫辉市| 萨迦县| 兴化市| 泗水县| 衡山县| 康马县| 宜宾市| 齐河县| 南昌县| 汝阳县| 新平| 英德市| 蒙自县| 确山县| 准格尔旗| 渑池县| 时尚| 贵州省| 胶州市| 北流市| 雷波县| 阿巴嘎旗| 衡南县| 西乌珠穆沁旗|