<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
    主站蜘蛛池模板: 国产精品亚洲二区在线| 免费无码又黄又爽又刺激| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲乱人伦中文字幕无码| 久久亚洲国产精品五月天| 亚洲成a人在线看天堂无码| 好先生在线观看免费播放| 国产免费无码AV片在线观看不卡| 国产精品无码亚洲精品2021| 亚洲人成网站日本片| 久久亚洲AV成人出白浆无码国产| 亚洲人成电影在线播放| 手机看片久久国产免费| 久久WWW色情成人免费观看| 国产精品爱啪在线线免费观看| 免费人成毛片动漫在线播放| 少妇亚洲免费精品| 亚洲国产精品美女久久久久| 亚洲制服丝袜中文字幕| 亚洲精品成人图区| 亚洲午夜精品一区二区| 久久精品国产精品亚洲艾| 亚洲综合无码精品一区二区三区| 亚洲国产成人精品91久久久| 色www永久免费视频| 女人被免费视频网站| 中文字幕人成无码免费视频| 国内精品乱码卡1卡2卡3免费| 亚洲精品在线免费观看视频| 久久久久久夜精品精品免费啦| 美女在线视频观看影院免费天天看 | 韩国免费a级作爱片无码| 免费在线观看一区| 菠萝菠萝蜜在线免费视频| 色屁屁在线观看视频免费| 国产成人综合亚洲绿色| 黄色a三级三级三级免费看| 免费一区二区三区在线视频| 久久久WWW免费人成精品| av永久免费网站在线观看| 四虎影视成人永久免费观看视频|