SQLServer2008:当执行insert和update语句时,来自JAVA的存储过程调用返回错误
我从Java调用sqlserver2008中的存储过程SQLServer2008:当执行insert和update语句时,来自JAVA的存储过程调用返回错误,java,sql-server-2008,spring-mvc,java-stored-procedures,Java,Sql Server 2008,Spring Mvc,Java Stored Procedures,我从Java调用sqlserver2008中的存储过程 jdbcCall = new SimpleJdbcCall(dataSource).withProcedureName("User_Ip_Details"); output = jdbcCall.execute(input); 我的存储过程有一个输出参数和一个insert、update语句。 存储过程中没有问题。 执行存储过程后,控件转到catch块,我得到下面的消息 [JdbcTemplate] CallableStatement.ex
jdbcCall = new SimpleJdbcCall(dataSource).withProcedureName("User_Ip_Details");
output = jdbcCall.execute(input);
我的存储过程有一个输出参数和一个insert、update语句。存储过程中没有问题。
执行存储过程后,控件转到catch块,我得到下面的消息
[JdbcTemplate] CallableStatement.execute() returned 'false'
[JdbcTemplate] CallableStatement.getUpdateCount() returned -1
[DataSourceUtils] Returning JDBC Connection to DataSource
我猜insert、update语句返回了一些值,这导致了问题。
请告诉我这里发生了什么问题以及如何解决这个问题。add@Transactional(rollboor=Exception.class)对于spring控制器方法或SimpleJDBC调用的方法,请先查看该过程是否在SQLServer中工作,然后再发布过程代码。该过程工作正常,没有问题。我在帖子中提到了这一点。jdbc sp调用在存储过程中的insert和update语句都不能正常工作。这就是它插入和更新的问题,您很可能需要事务范围来运行java calli,我不知道这一点。请让我知道如何做到这一点,我将检查并确认您是否使用了spring模板,如果该案例只是使用@Transactional注释您的方法帮助我了解引入此注释对我的问题有什么作用?stacktrace在catch do exp.printStackTrace()中的try catch中包装您的代码是什么,查看服务器日志并发布完整的堆栈traceno足够的信息此链接可能会对您有所帮助