"
在mysql里面写了一个分页的存储过程,返回的是结果集和总的条数
CREATE DEFINER=`root`@`%` PROCEDURE `prc_page_result_zh`(
OUT oRowsTotal INT,
IN tablename VARCHAR(500),
IN fieldname VARCHAR(500),
IN pagesize INT,
IN currpage INT,
IN sCondition VARCHAR(500),
IN order_field VARCHAR(100),
IN asc_field INT,
IN primary_field VARCHAR(1000))
BEGIN
其它代码略....
SET @iPageSize = pagesize;
SET @sQuery = sSql;
PREPARE stmt FROM @sQuery;
EXECUTE stmt USING @iPageSize;
SET oRowsTotal=FOUND_ROWS();
SET @sQuery='';
DEALLOCATE PREPARE stmt;
END$$
请问在mybatis里面怎么配置和调用,刚接触mybatis,以前用hibernate和springjdbc都没有问题
请各位高手指教,感谢不尽.
" 版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
"难道没有人用过吗?应该是很常见的应用吧######
既然是分页你何必又要再用存储过程封装呢?直接在xml写sql把这样好扩展。
<select id="querySearchReverseList" statementType="CALLABLE" >
{call SP_OD_SEARCHREVERSE_BEGIN(#{pageNo},#{pageSize},#{status},#{result,mode=OUT,javaType=java.sql.ResultSet,jdbcType=CURSOR,resultMap=OrderInfoVo.querySearchReverseResult})}
</select>
原来我也用过,而且返回的是一个resultset
但是效率不行。特别是平凡查询的时候
######CREATE OR REPLACE PROCEDURE SP_OD_SEARCHREVERSE_BEGIN(v_pageNo number, --查询页码
v_pageSize number, --每页显示大小
v_status in VARCHAR2, --要获取的状态
v_resultCur out HF_CURSOR.CURSOR_TYPE) --获取记录集合
is
/************************************************************
************************************************************/
l_pageNo number(10);
l_pageSize number(10);
BEGIN
if v_pageSize is null or v_pageSize = 0 then
l_pageSize := 10;
else
l_pageSize := v_pageSize;
end if;
OPEN v_resultCur FOR
select xxxx, xxxx, xxxx, xxxx, xxxx
from (select r.xxx, f.xxx, f.xxx, f.xxx, f.xxx
from OD_1 r, OD_2 f, OD_3 o, CH_4 c
where r.xxx = f.xxx
order by r.xxxx asc
)
where rownum <= l_pageSize;
--close v_resultCur; -- 不能关闭
END;
create or replace package HF_CURSOR is -- Author : ADMINISTRATOR -- Created : 2011-5-23 10:03:47 -- Purpose : FOR RETURN LIST -- Public type declarations TYPE CURSOR_TYPE IS REF CURSOR; --定义游标 end HF_CURSOR;######感谢你的回复,我已经解决了,和你的方法差不多" 