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

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

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

    空間站

    北極心空

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
    DB2中簡單存儲過程 selectAllUsers

    CREATE  procedure selectAllUsers 
    DYNAMIC RESULT SETS 1
    BEGIN 
          DECLARE temp_cursor1 CURSOR  WITH RETURN TO CLIENT  FOR 
          SELECT * FROM  test;   
          OPEN temp_cursor1;
    END;

    映射文件中關于存儲過程內容如下

    <hibernate-mapping package="com.unmi.vo">
        <class name="Test" table="TEST">
         ............
        </class>

        <sql-query callable="true" name="selectAllUsers">
    <return alias="aa" class="Test">
        <return-property name="oborqt" column="OBORQT"/>
        <return-property name="moorqt" column="MOORQT"/>
        <return-property name="roschn" column="ROSCHN"/>
        <return-property name="plandate" column="PLANDATE"/>
    </return>
    { ? = call selectAllUsers() }
        </sql-query>
    </hibernate-mapping>

    { ? = call selectAllUsers() } 也可以寫成{ call selectAllUsers() },
    如果有參數就寫成
    { ? = call selectAllUsers(?,?,?) }
    代碼中對query設置相應位置上的值就OK

    Java調用關鍵代碼如下
          
      Session session = HibernateUtil.currentSession();
      Query query = session.getNamedQuery("selectAllUsers");
      List list = query.list();
      System.out.println(list);

    要求你的存儲過程必須能返回記錄集,否則要出錯
    如果你的存儲過程是完成非查詢任務就應該在配置文件用以下三個標簽
      <sql-insert callable="true">{call createPerson (?, ?)}</sql-insert>
      <sql-delete callable="true">{? = call deletePerson (?)}</sql-delete>
      <sql-update callable="true">{? = call updatePerson (?, ?)}</sql-update>

    有一點不好的地方就是調用存儲過程獲取記錄集時,不能對Query使用
    setFirstResult(int)和setMaxResults(int)方法來分頁



    要求你的存儲過程必須能返回記錄集,否則要出錯


    上面這句話是關鍵。
    ==========================================================================
    hibernate調用mysql5.0存儲過程
    關鍵代碼:
    數據庫存儲過程
    Create procedure SP_get_UserInfo()
    as
    begin
        select *
        from user
       order by Id
    end

    hibernate相對應的配置文件User.hbm.xml
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!--
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping>
        <class name="com.test.hibernate.db.User" table="user"
            catalog="user">
            <id name="id" type="java.lang.Long">
                <column name="ID" />
                <generator class="assigned" />
            </id>
            <property name="name" type="java.lang.String">
                <column name="name" length="500" />
            </property>
            <property name="sex" type="java.lang.String">
                <column name="sex" length="10" />
            </property>
            <!--
                <property name="born" type="java.util.Date">
                <column name="born" length="0" />
                </property>
            -->
            <property name="born" type="java.lang.String">
                <column name="born" length="0" />
            </property>
            <property name="address" type="java.lang.String">
                <column name="address" />
            </property>
        </class>
       
        <!--調用存儲過程就在這里配 -->
        <sql-query name="getUser" callable="true">
            <return alias="user" class="com.test.hibernate.db.User">
                <return-property name="id" column="ID" />
                <return-property name="name" column="name" />
                <return-property name="sex" column="sex" />
                <return-property name="born" column="born" />
                <return-property name="address" column="address"/>
            </return>
            { call SP_get_UserInfo() }
        </sql-query>

    </hibernate-mapping>

    調用存儲過程的Java代碼:
           
            Session querySession = HibernateSessionFactory.getSession();
            querySession.clear();
            List lst = uerySession.getNamedQuery("getUser").list();
            for(int i=0;i<lst.size();i++)
            {
                usr=(User)lst.get(i);
                System.out
                .println(usr.getId() + " " + usr.getName() + " "
                        + usr.getSex() + " " + usr.getBorn() + " "
                        + usr.getAddress());
            }
           HibernateSessionFactory.closeSession();

    一個簡單的存儲過程調用就這樣完成了!
    posted on 2008-09-19 17:45 蘆葦 閱讀(999) 評論(0)  編輯  收藏 所屬分類: 數據庫JAVAHibernate
    主站蜘蛛池模板: 在线观看的免费网站| 国产在线jyzzjyzz免费麻豆| 免费a级毛片大学生免费观看 | 日韩在线视精品在亚洲| 免费a级毛片高清视频不卡| 2020亚洲男人天堂精品| 男女超爽刺激视频免费播放| 亚洲国产精品久久网午夜| 成年人免费的视频| 亚洲 欧洲 视频 伦小说| 四虎影视www四虎免费| 亚洲国产精品久久久久秋霞小| 日韩在线天堂免费观看| 美女18毛片免费视频| 国产亚洲精aa成人网站| 久久久久免费精品国产| 亚洲精品美女视频| 中文字幕无码不卡免费视频| 亚洲欧美日韩中文二区| 亚洲av午夜精品一区二区三区| 亚洲免费无码在线| 亚洲国产精品国自产拍电影| 人成午夜免费视频在线观看| 亚洲精品无码不卡在线播放| 亚洲一区二区视频在线观看| 精品视频在线免费观看| 亚洲大片免费观看| 在线永久免费观看黄网站| 立即播放免费毛片一级| 国产亚洲精AA在线观看SEE| 精品成在人线AV无码免费看 | 67pao强力打造67194在线午夜亚洲 | 亚洲videosbestsex日本| 日本一道在线日本一道高清不卡免费 | 黄页免费的网站勿入免费直接进入| 亚洲日本中文字幕天天更新| 亚洲区日韩区无码区| 国产免费不卡视频| 免费观看又污又黄在线观看| 亚洲最大福利视频网站| 国产成人免费ā片在线观看 |