日期:2014-05-16 浏览次数:20378 次
create or replace procedure batchUpdateStudent(p_age in number) as begin update STUDENT set AGE=AGE+1 where AGE>p_age; end;
//hibernater 不支持直接更新或删除的存储过程,可以绕过Hibernate,
//而在Hibernate中直接使用JDBC
tx = session.beginTransaction();
Connection con=session.connection();
String procedure = "{call batchUpdateStudent(?) }";
CallableStatement cstmt = con.prepareCall(procedure);
cstmt.setInt(1,0); //把年龄参数设为0
cstmt.executeUpdate();
tx.commit();
Create or REPLACE FUNCTION selectAllEmployments     
RETURN    SYS_REFCURSOR     
   AS     
      st_cursor    SYS_REFCURSOR;     
   BEGIN     
     OPEN st_cursor FOR     
     Select EMPLOYEE,EMPLOYER,     
     STARTDATE, ENDDATE,     
     REGIONCODE, EID, VALUE, CURRENCY     
     FROM EMPLOYMENT;     
     RETURN st_cursor;     
END;   
<sql-query    name="selectAllEmployees_SP"    callable="true">   
           <return    alias="emp"    class="Employment">   
                   <return-property    name="employee"    column="EMPLOYEE"/>   
                   <return-property    name="employer"    column="EMPLOYER"/>                           
                   <return-property    name="startDate"    column="STARTDATE"/>   
                   <return-property    name="endDate"    column="ENDDATE"/>                           
                   <return-property    name="regionCode"    column="REGIONCODE"/>                           
                   <return-property    name="id"    column="EID"/>                                                   
                   <return-property    name="salary">     
                           <return-column    name="VALUE"/>   
                           <return-column    name="CURRENCY"/>                           
                   </return-property>   
           </return>   
           {    ?    =    call    selectAllEmployments()    }   
   </sql-query>   
<hibernate-mapping package="com.unmi.vo"> <class name="Test" table="TEST"/>       
<sql-query callable="true" > 
<return alias="aa" > <return-property name="oborqt" column="OBORQT"/>
<return-property column="MOORQT"/> <return-property name="roschn" column="ROSCHN"/>
<return-property column="PLANDATE"/> 
<return> { ? = call selectAllUsers() } </sql-query> 
</hibernate-mapping>
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>