使用hibernate 调用存储过程。
public class StuInfo { private int id; private String stuName; private String stuNo; private int stuAge; private String stuId; private String stuSeat;
private String stuAddress;setters();getters();}
对应的数据库表:
if exists(select * from sysobjects where name='stuInfo') drop table stuInfo
create table stuInfo /*创建学员信息表**/ (
stuName varchar(20) not null,-- 姓名,非空 stuNo char(6) not null,-- 学号,非空
stuAge int not null,-- 年齡,int 默认为4个长度 stuId numeric(18,0),
stuSeat smallint ,-- 坐位车,使用自增 stuAddress text -- 住址 可以为空 )
-- 给stuInfo添加一列
alter table stuInfo add id int identity(1,1) primary key; 创建存储过程:
-- 存储过程
if exists(select name from sysobjects where name='proc_stuInfo' and type='p')
drop proc proc_stuInfo
go
create proc proc_stuInfo as
select * from stuInfo go
-- 调用存储过程 exec proc_stuInfo;
在hibernate 中调用存储过程的几种方法。
第一种:命名查询
{call proc_stuInfo()}
List li=session.getNamedQuery(\ System.out.println(li.get(0));第二种:类型于jdbc
System.out.println(\调用-------------\ Connection conn = session.connection(); ResultSet rs =null; CallableStatement call; try {
call = conn.prepareCall(\
rs = call.executeQuery(); while(rs.next()){
System.out.println(rs.getString(1)); System.out.println(rs.getString(2)); System.out.println(rs.getString(3)); System.out.println(rs.getString(4)); System.out.println(rs.getString(5)); System.out.println(rs.getString(6)); System.out.println(rs.getString(7)); System.out.println(\ }
} catch (SQLException e) { e.printStackTrace(); }
第三种:最简单的一种
SQLQuery query = session.createSQLQuery(\proc_stuInfo()}\ List list =query.list(); System.out.println(list.get(0));
注:在第三种调用时,一定要加上addEntity();否则没有数据返回。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库使用hibernate 调用存储过程在线全文阅读。
相关推荐: