dglixiaojiang 2010-01-04 05:54
浏览 257
已采纳

有关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())但是返回单个值,不知道怎么处理,请各位指点指点.............

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

  • 写回答

1条回答

  • yjailj 2010-01-05 16:53
    关注

    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)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退