a12053094
a12053094
2010-09-28 10:34

关于ibatis异常一个问题

已采纳

由于最近项目用的是ibatis,遇见这么一个问题,网上找了很多,也不得其法,希望那个大侠能仗义相助,不胜感激。。。。

出错是:
SqlMapClient operation; SQL []; --- The error occurred in sqlmaps/MessageSQL.xml. --- The error occurred while applying a parameter map. --- Check the updateMessages-InlineParameterMap. --- Check the statement (update failed). --- Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in sqlmaps/MessageSQL.xml. --- The error occurred while applying a parameter map. --- Check the updateMessages-InlineParameterMap. --- Check the statement (update failed). --- Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction

调用代码:
public void update(Long destUserId) {
this.getSqlMapClientTemplate().update("updateMessages", destUserId);

}
sqlMap:

<![CDATA[
update app_message set msg_status=1 where dest_usrid=#destUserId#
]]>

其中,msg_status是integer类型的,dest_usrid是long,而且,如果我在这个地方把语句换成:delete或者select语句,都能够跑起来~~~~也就是说运行到这个语句了,而且update语句单独提出来运行也没有错。

传入参数测试时,我把传入的参数写死,也还是出现这个问题,实在没招了~~~

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • ayling520 ayling520 11年前

    表被锁了,你提交事务了吗? 如楼上所说,直接操作数据库看行不行。

    点赞 评论 复制链接分享
  • lndalian200 lndalian200 11年前

    你不用java.直接数据库软件能更新?

    点赞 评论 复制链接分享
  • songfantasy songfantasy 11年前

    把long类型换成String试试。

    点赞 评论 复制链接分享

相关推荐