配置:
<parameterMaps>
<parameterMap id="ParamFindPage" class="Hashtable"><parameter property="_pagecurrent"/>
<parameter property="_pagesize"/>
<parameter property="_ifelse"/>
<parameter property="_where"/>
<parameter property="_order"/>

</parameterMap>
</parameterMaps><procedure id="GetMyChapterFindPage" parameterMap="ParamFindPage" resultMap="Chapter-result">
        Novel_page
</procedure>
代码:Hashtable ht = new Hashtable();ht.Add("_pagecurrent", pageIndex);
ht.Add("_pagesize", pageSize);
ht.Add("_ifelse", tabName);
ht.Add("_where", tabWhere);
ht.Add("_order", tabOrder);
IList<MyChapter> list =MapperDao.GetMaper.QueryForList<MyChapter>("MyChapter.GetMyChapterFindPage", ht);错误提示:无法将类型为“System.Object[]”的对象强制转换为类型“NovelModel.MyChapter”。 感觉应该是配置文件有误啊,可我看ibtais也是这样配置啊,在net里就不行,一直说转型错误,请问还要配那里?

解决方案 »

  1.   


    这是存储过程CREATE PROCEDURE Novel_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