有关oracle 11g一个存储过程返回单个值,想在hibernate中调用????

有关oracle 11g一个存储过程返回单个值,想在hibernate中调用????

问题描述:

首先说明,我不想使用JDBC来操作!
费话不多说:
1.存储过程是这样,我想根据用户名和密码去数据查询,如果存在返回1,不存在返回0.如下:

CREATE OR REPLACE PROCEDURE PROC_FINDUSERCOUNT--查询是否存在一个用户的存储过程(我在PL/SQL工具中测试通过)
(
PARM_OUT OUT NUMBER, --输出参数
PARM_LOGINNAME IN VARCHAR, --输入参数:用户名
PARM_LOGINPWD IN VARCHAR --输入参数:密码
)
AS
BEGIN
SELECT COUNT(*) INTO PARM_OUT FROM MANOPERATIONINFO WHERE LOGINNAME=PARM_LOGINNAME AND LOGINPWD=PARM_LOGINPWD; END PROC_FINDUSERCOUNT;

2.现在我是用SH框架+Flex来开发,想在hibernate中调用,我目前写的代码如下:

(1---hbm.xml)配置如下:



{ call PROC_FINDUSERCOUNT(?,:PARM_LOGINNAME,:PARM_LOGINPWD) }

(2---DAO类调用)如下:
public int findUserCount_proc(String loginName, String loginPwd) {
Query query = this.getCurrentSession().getNamedQuery("PROC_FINDUSERCOUNT");
query.setParameter("PARM_LOGINNAME", loginName);
query.setParameter("PARM_LOGINPWD", loginPwd);
// 单个值该怎么返回结果????
//Object object = query.uniqueResult();
return 1;
}

因为我之前用游标返回一个结果集都成功了,(用游标就直接是query.list())但是返回单个值,不知道怎么处理,请各位指点指点.............

还有就是如果我要修改,删除.那么该怎么配置?

hibernate 将查询结果放在一个由数组构成的 list 中

[code="java"]for (int i = 0; i < list.size(); i++) {
Object[] obj = (Object[]) list.get(i);

for(Object o : obj) {
    System.out.println(o);
}

}[/code]

如果只有一个值, 可以直接使用 get(0)