在用ibatis调用mysql存储过程时,出现线程阻塞,但是存储过程中的数据插入却成功了,但是没有返回结果。
我写的存储过程执行了查询、添加、更新操作,并且返回一个int结果。
解决办法:
将dao的执行变成:update即可;
另外,查了有关的网友写的:
如果你的存储过程返回一个结果集,那么使用queryForList()或者queryForObject来调用;
如果你的存储过程既返回结果集又更新数据库数据,那么需要配置<transactionManager>的commitRequired=’true’
如果存储过程不返回结果集,或者仅仅以输出参数的形式返回结果集,那么应该使用update()方法,如果使用queryForList()或者queryForObject来调用,会导致线程阻塞,无法往下执行。
本文探讨了使用ibatis框架调用MySQL存储过程中遇到的问题,即线程阻塞但数据插入成功的情况。文章提供了解决方案,包括根据存储过程是否返回结果集选择合适的方法调用,如使用update、queryForList或queryForObject等。
880

被折叠的 条评论
为什么被折叠?



