Mybatis调用存储过程报错,求大神解答 50

CREATEDEFINER=`suncz`@`%`PROCEDURE`spreader_detail_info`(OUTsp_totalINTEGER)BEGINCREA... CREATE DEFINER=`suncz`@`%` PROCEDURE `spreader_detail_info`(OUT sp_total INTEGER)
BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS sp_output_tmp ENGINE = MEMORY
(SELECT
a.id 'spId',
a. NAME 'spName',
a.user_id 'spHdxId',
a.parent_id 'spParentId',
a.parentName 'spParentName',
a.personTotal 'spPersonTotal',
a.consumptionTotal 'spConsumptionTotal',
a.backTotal 'spBackTotal'
FROM
hdx_proxy_distributor a
WHERE
a.position = 6
GROUP BY
a.id
);
SELECT * from sp_output_tmp;
select count(spId) 's_total' into @total from sp_output_tmp;
set sp_total = @total;
drop table sp_output_tmp;
END
这是我在mysql中写的存储过程,返回一个对象集合与总记录数。
<resultMap type="java.lang.Integer" id="count">
<result column="s_total" jdbcType="INTEGER" javaType="Integer"/>
</resultMap>

<resultMap type="java.util.Map" id="spreaderMap">
...
</resultMap>

<select id="selectSpreader" parameterType="java.util.List" resultMap="spreaderMap,count" statementType="CALLABLE">
{call spreader_detail_info(#{sp_total,jdbcType=INTEGER,mode=OUT})}
</select>
在Mybatis配置里面是这么写的。参照了网上的写法。

DAO层这么调用:
public List<List<?>> selectSpreader(Map<String,Integer> map);

报错:错误信息说设置参数时发生异常:
### Error querying database. Cause: java.lang.NullPointerException
### The error may involve org.dis.main.fxsht.suppliers.IHdxSuppliersDao.selectSpreader-Inline
### The error occurred while setting parameters
### Cause: java.lang.NullPointerException
展开
 我来答
aiappfine
2014-07-24 · 超过29用户采纳过TA的回答
知道答主
回答量:52
采纳率:100%
帮助的人:41.2万
展开全部
异常是从org.dis.main.fxsht.suppliers.IHdxSuppliersDao类的selectSpreader方法中抛出来的,由于没有看到这个类的内容,只能猜测可能的原因:数据库的连接或JdbcTemplate对象为空。
追问
我写了DAO层的引用啊,我DAO层是:
public List> selectSpreader(Map map);
并且存储过程是用Mybatis调用的
追答
明白你的意思了,请把selectSpreader方法的内容贴一下,方便分析。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式