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 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。