存储过程我现在已经写好了,就事不知道在 hibernate 中怎么调用存储过程并返回一个List集合,然后在前台jsp页面显示。

解决方案 »

  1.   

      Connection   con   =   session.connect();       CallableStatement   proc   =   null;       con   =   connectionPool.getConnection();       proc   =   con.prepareCall("{   call 存储过程名称(?,   ?)   }"); //带参     proc.setString(1,   XXX);       proc.setInt(2,   XXx);       ...     proc.execute();       session.close();  
      

  2.   

    创建session之后
    调用session的createQuery()方法
    此方法返回的是一个Query类型的对象
    /**
     * 查询所有的部门信息
     * @return 集合类
     */
    public List selectAllDeptInf()
    {
    Session session = SessionFact.getSession();
    Transaction t = session.beginTransaction();
    Query query = session.createQuery("from DeptVO");
    List list = (List)query.list();
    session.close();
    return list;
    }
      

  3.   


    这点我知道,这调用了怎么返回个List集合啊?怎么才能返回个List集合在jsp页面显示
      

  4.   

    2楼已经在java里面给你返回List了,你在JSP页面调用xx类的selectAllDeptInf()得到List,然后for()就可以了.
      

  5.   

    谁有mysql 存储过程写的分页的例子,给我看看吧 实在是太难了,不懂
      

  6.   

    1 建表 test
    CREATE TABLE IF NOT EXISTS `test` (
      `id` int(11) NOT NULL auto_increment,
      `sort` int(11)
      `title` varchar(50),
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 AUTO_INCREMENT=1 ;2 存储过程代码DELIMITER $$;
    DROP PROCEDURE IF EXISTS `sp_page`$$
    CREATE PROCEDURE `sp_page`(
     in _pagecurrent int,/*当前页*/
     in _pagesize int,/*每页的记录数*/
     in _ifelse varchar(1000),/*显示字段*/
     in _where varchar(1000),/*条件*/
     in _order varchar(1000)/*排序*/
    )
    COMMENT '分页存储过程'
    BEGIN
     if _pagesize<=1 then 
      set _pagesize=20;
     end if;
     if _pagecurrent < 1 then 
      set _pagecurrent = 1; 
     end if;
     
     set @strsql = concat('select ',_ifelse,' from ',_where,' ',_order,' limit ',_pagecurrent*_pagesize-_pagesize,',',_pagesize); 
     prepare stmtsql from @strsql; 
     execute stmtsql; 
     deallocate prepare stmtsql;  set @strsqlcount=concat('select count(1) as count from ',_where);/*count(1) 这个字段最好是主键*/
     prepare stmtsqlcount from @strsqlcount; 
     execute stmtsqlcount; 
     deallocate prepare stmtsqlcount; 
    END$$
    DELIMITER ;$$ 
    3 调用  call sp_Page(1,3,'*','test','order by id desc'); 
      

  7.   

    用Struts在JSP 里面显示啊。
    <logic:iterate>