SQLServer 2008:来自 JAVA 的存储过程调用在执行插入和更新语句时返回错误
Posted
技术标签:
【中文标题】SQLServer 2008:来自 JAVA 的存储过程调用在执行插入和更新语句时返回错误【英文标题】:SQLServer 2008: Stored procedure call from JAVA Returns error when both insert and update statement are executed 【发布时间】:2016-02-11 08:06:37 【问题描述】:我从Java调用sqlserver2008中的存储过程
jdbcCall = new SimpleJdbcCall(dataSource).withProcedureName("User_Ip_Details");
output = jdbcCall.execute(input);
我的存储过程有一个输出参数和一个插入、更新语句。 存储过程没有问题。 执行存储过程后,控制转到 catch 块,我收到以下消息
[JdbcTemplate] CallableStatement.execute() returned 'false'
[JdbcTemplate] CallableStatement.getUpdateCount() returned -1
[DataSourceUtils] Returning JDBC Connection to DataSource
我猜插入、更新语句会返回一些值,这会导致问题。请告诉我这里发生了什么问题以及如何解决这个问题。
【问题讨论】:
先查看程序是否在 SQLServer 中运行或发布程序代码 程序工作正常,没有问题。我在我的帖子中提到了这一点。 jdbc sp 调用不能与存储过程中的插入和更新语句一起正常工作。这就是问题 因为它插入和更新很可能你需要事务范围来运行 java 调用 我不知道。请告诉我该怎么做,我会检查并确认 如果这种情况只是用@Transactional注释你的方法,你是否使用了spring模板 【参考方案1】:将@Transactional(rollbackFor=Exception.class) 添加到您的spring 控制器方法或有您SimpleJDBC 调用的方法中
【讨论】:
帮助我了解引入此注释会对我的问题产生什么影响? what is your stacktrace wrap you code in try catch in catch do exp.printStackTrace() ,查看服务器日志并发布完整的堆栈跟踪 没有足够的信息这个链接可能对你有帮助jhreview.com/tech-stack/questions/33025138/…以上是关于SQLServer 2008:来自 JAVA 的存储过程调用在执行插入和更新语句时返回错误的主要内容,如果未能解决你的问题,请参考以下文章
迁移MSSql Db - 来自SQL Server 2008 R2 Enterprise备份可以在SQL Server 2008 R2 Express版本中还原
急急急sqlserver2008中,如何统计多表的统计数。如下图每一行的数据来自一个表,总共来自8张表,在线等。