大魚

          EJB調(diào)用存儲過程

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

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

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

          3.調(diào)用返回表全部列的存儲過程
             在調(diào)用存儲過程時,可以讓EJB3 Persistence 運行環(huán)境將列值直接填充入一個Entity 的實例(本例填充進Person 對象),并將實例作為結(jié)果返回
             //調(diào)用返回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.調(diào)用返回部分列的存儲過程
             創(chuàng)建存儲過程:
             CREATE PROCEDURE `GetPersonPartProperties`()
                            NOT DETERMINISTICSQL SECURITY DEFINER
                            COMMENT ''
             BEGIN
                            SELECT personid, personname from person;
             END;

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

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

          主站蜘蛛池模板: 芜湖县| 泰兴市| 高台县| 随州市| 遂川县| 青冈县| 雷州市| 卓尼县| 泌阳县| 绥宁县| 灵川县| 湘阴县| 湖南省| 蒲江县| 临颍县| 咸丰县| 乐平市| 抚顺县| 盖州市| 克拉玛依市| 桃源县| 郎溪县| 大安市| 赫章县| 扶沟县| 定州市| 柘城县| 上饶市| 噶尔县| 安泽县| 广州市| 米脂县| 右玉县| 太仓市| 合山市| 堆龙德庆县| 呈贡县| 修文县| 呼图壁县| 肇东市| 宜宾县|