hibernate中使用儲存過程

2021-04-26 14:53:44 字數 1346 閱讀 7809

hibernate中使用儲存過程

如果底層資料庫(如oracle)支援儲存過程,也可以通過儲存過程來執行批量更新。儲存過程直接在資料庫中執行,速度更加快。在oracle資料庫中可以定義乙個名為batchupdatestudent()的儲存過程,**如下:

create or replace procedure batchupdatestudent(p_age in number) as

begin

update student set age=age+1 where age>p_age;

end;

以上儲存過程有乙個引數p_age,代表學生的年齡,應用程式可按照以下方式呼叫儲存過程:

tx = session.begintransaction();

connection con=session.connection();

string procedure = "";

callablestatement cstmt = con.preparecall(procedure);

cstmt.setint(1,0); //把年齡引數設為0

cstmt.executeupdate();

tx.commit();

引自: http://www.afuer.com/article.asp?id=140

使用儲存過程來查詢  

hibernate    3引入了對儲存過程查詢的支援.    儲存過程必須返回乙個結果集,作為hibernate能夠使用的第乙個外部引數.    下面是乙個oracle9和更高版本的儲存過程例子.    

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;  

在hibernate裡要要使用這個查詢,你需要通過命名查詢來對映它.    

在Eclipse中使用Hibernate 四

產生資料庫中的表 很清楚,你可以用hibernate synchronizer來做靈巧的事情。我會在我自己的hibernate專案中使用該外掛程式嗎?這個想法有其它一些優缺點需要考慮,可能現在還不是做決定的時候,直到需要用hibernate來取代自家釀 當然非常簡單 的 已經在工作的輕量級o r工具...

hibernate中使用enum型別

1.在pojo 實體類中定義了乙個customer 類和乙個枚舉子類partner.class customer class enum partner 在寫入資料庫的時候,可以選擇寫入int 型別或者string 型別.這個取決於配置.下面的配置是寫入字串到資料庫中 import j ax.pers...

hibernate中使用原生sql查詢

hibernate使用hql查詢有諸多不便,比如無法在from後面使用select子查詢,貌似可以解決但是挺麻煩 所以這裡記錄下自己找到的一些寫法 首先拿到session物件 hibernatesessionfactory.getsession 這個類是我找的乙個工具類,下面會附上工具 直接丟裡面用...