大魚

          EJB調用存儲過程

          EJB調用存儲過程
              
          要調用存儲過程,我們可以通過EntityManager 對象的createNativeQuery()方法執行SQL 語句(注意:這里說的是SQL 語句,不是EJB3 QL), 調用存儲過程的SQL 格式如下:
               {call 存儲過程名稱(參數1, 參數2, … )}
               在EJB3 中你可以調用的存儲過程有兩種
               1.無返回值的存儲過程。
               2.返回值為ResultSet(以select 形式返回的值)的存儲過程,EJB3 不能調用以OUT 參數返回值的存儲過程

          1.調用無返回值的存儲過程
             //調用無返回參數的存儲過程
             Query query = em.createNativeQuery("{call Procedure()}");
             query.executeUpdate();

          2.調用返回單值的存儲過程
             //調用返回單個值的存儲過程
             Query query = em.createNativeQuery("{call GetPersonName(?)}");
             query.setParameter(1, new Integer(1));
             String result = query.getSingleResult().toString();

          3.調用返回表全部列的存儲過程
             在調用存儲過程時,可以讓EJB3 Persistence 運行環境將列值直接填充入一個Entity 的實例(本例填充進Person 對象),并將實例作為結果返回
             //調用返回Person 全部列的存儲過程
             Query query = em.createNativeQuery("{call GetPersonList()}", Person.class);
             List result = query.getResultList();
          存儲過程
          GetPersonList:
             CREATE PROCEDURE `GetPersonList`()
             NOT DETERMINISTIC
                     SQL SECURITY DEFINER
                     COMMENT ''
              BEGIN
                        select * from person;
              END;


          4.調用返回部分列的存儲過程
             創建存儲過程:
             CREATE PROCEDURE `GetPersonPartProperties`()
                            NOT DETERMINISTICSQL SECURITY DEFINER
                            COMMENT ''
             BEGIN
                            SELECT personid, personname from person;
             END;

             //調用返回部分列的存儲過程
             Query query = em.createNativeQuery("{call GetPersonPartProperties()}");
             List result = query.getResultList();

          posted on 2009-09-24 17:28 大魚 閱讀(575) 評論(0)  編輯  收藏 所屬分類: EJB

          主站蜘蛛池模板: 顺昌县| 额济纳旗| 揭阳市| 将乐县| 碌曲县| 兰西县| 湟中县| 乐东| 耒阳市| 安义县| 西峡县| 乾安县| 浙江省| 襄垣县| 博客| 汪清县| 依兰县| 建德市| 图们市| 万源市| 合山市| 新巴尔虎右旗| 丽江市| 嘉善县| 乌拉特后旗| 银川市| 卢湾区| 盐亭县| 黔东| 林芝县| 高邑县| 涡阳县| 临澧县| 旬阳县| 武强县| 桂林市| 祁东县| 合肥市| 平潭县| 加查县| 远安县|