hibernate 呼叫儲存過程

2021-09-01 15:07:38 字數 1506 閱讀 9114

create   table  `proctab` (

`id` int ( 11 ) not null auto_increment,

`name` varchar ( 20 ),

`age` int ( 11 ),

primary key (`id`)

)

簡單的儲存過程

create   procedure  proc()

begin

select * from proctab;

end ;

一種方法是通過hibernate傳統的xml對映方式去呼叫

呼叫方法

session ss= hibernatesessionfactory.getsession()

list li=ss.getnamedquery("getuser").list();

ss.close();

及其類似jdbc的方法

session session =hibernatesessionfactory.getsession(); 

connection conn = session.connection();

resultset rs =null;

callablestatement call = conn.preparecall("");

rs = call.executequery();

rs.close();

session.close();

這種方法基本上就是jdbc,不過很簡單,總是感覺怪怪的~!

還有就是通過強大的createsqlquery來實現

session session =hibernatesessionfactory.getsession(); 

sqlquery query = session.createsqlquery("");

list list =query.list();

session.close();

如果沒有返回值 直接用execute的方法就可以了

乙個重要的問題就是儲存過程的傳參問題

callablestatement call = conn.preparecall("");

call.setstring(1, 引數);

rs = call.executequery();

sqlquery query = session.createsqlquery(""); 

query.setstring(0, 引數);

list list =query.list();

hibernate呼叫儲存過程

drop table if exists user create table user id int 11 not null auto increment,name varchar 16 not null default remark varchar 16 not null default prim...

hibernate呼叫儲存過程

一 建表 drop table if exists user create table user id int 11 not null auto increment,name varchar 16 not null default remark varchar 16 not null default...

Hibernate呼叫執行儲存過程

執行儲存過程的方法 儲存過程僅僅支援輸入引數的使用,並且無返回值的以後擴充套件資訊 param procedurename 儲存過程的名稱 param paramlist 備註 mapparamlist 其中string 引數 object輸入的引數物件 儲存過程引數的資訊 public void ...