ibatis执行存储过程出现阻塞

本文探讨了使用ibatis框架调用MySQL存储过程中遇到的问题,即线程阻塞但数据插入成功的情况。文章提供了解决方案,包括根据存储过程是否返回结果集选择合适的方法调用,如使用update、queryForList或queryForObject等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在用ibatis调用mysql存储过程时,出现线程阻塞,但是存储过程中的数据插入却成功了,但是没有返回结果。

我写的存储过程执行了查询、添加、更新操作,并且返回一个int结果。


解决办法:

将dao的执行变成:update即可;


另外,查了有关的网友写的:

如果你的存储过程返回一个结果集,那么使用queryForList()或者queryForObject来调用;
       如果你的存储过程既返回结果集又更新数据库数据,那么需要配置<transactionManager>的commitRequired=’true’  
       如果存储过程不返回结果集,或者仅仅以输出参数的形式返回结果集,那么应该使用update()方法,如果使用queryForList()或者queryForObject来调用,会导致线程阻塞,无法往下执行。

*SYSTEM org.sonatype.nexus.scheduling.internal.PeriodicJobServiceImpl - Periodic job threw exception org.sonatype.nexus.common.app.FrozenException: INSERT is not allowed while the application is frozen at org.sonatype.nexus.datastore.mybatis.FrozenChecker.checkFrozen(FrozenChecker.java:53) at org.sonatype.nexus.datastore.mybatis.EntityExecutor.update(EntityExecutor.java:68) at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197) at org.sonatype.nexus.datastore.mybatis.DataAccessSqlSession.update(DataAccessSqlSession.java:83) at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62) at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) at jdk.proxy53/jdk.proxy53.$Proxy213.saveBatch(Unknown Source) at com.sonatype.analytics.internal.metrics.datastore.HistoricalLoginInfoStoreImpl.save(HistoricalLoginInfoStoreImpl.java:76) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:58) at org.sonatype.nexus.transaction.TransactionInterceptor.proceedWithTransaction(TransactionInterceptor.java:66) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:55) at com.sonatype.analytics.internal.LoginsCounterHandler.saveNewLogins(LoginsCounterHandler.java:140) at com.sonatype.analytics.internal.LoginsCounterHandler.periodicJob(LoginsCounterHandler.java:130) at org.sonatype.nexus.scheduling.internal.PeriodicJobServiceImpl.lambda$2(PeriodicJobServiceImpl.java:109) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:3
最新发布
03-12
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值