2016-11-12 55 views
0

我正在使用spring映射器将更新查询从我的web应用程序发送到sql服务器。我可以发送SELECT声明并从我的数据库中收到正确的回复。当我发送一条UPDATE语句时,我可以看到MySQL Workbench的客户端连接部分弹出了查询,但不会发生更新。当我复制并粘贴相同的查询(从客户端连接中显示的查询的信息)并在MySQL工作台内运行时,更新成功。我对两者都使用相同的root用户和密码。该Web应用程序正在本地主机上运行。我的root用户拥有所有权限。我已经尝试了几个我在这个网站上看到的东西,似乎没有任何工作。有人有任何想法我应该尝试下一步?请让我知道是否需要更多信息。 Here is the update showing up in workbench when I send it from the web app在Windows 10上的MySQL Server 5.7中,更新不能远程工作

Here is the mapper

更新:我也正在此错误在控制台中。
"Caused by: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction."

所有的提示都说只是杀死有问题的连接,但即使当我这样做的错误仍然存​​在。有些事情正在导致锁定。有什么想法吗?

+0

显示我们的代码,因为这是明显的,其中您的问题是 – RiggsFolly

+0

@RiggsFolly我刚刚发布图片。我不认为它是代码本身,但是SELECT语句正常工作。而且UPDATE很明显地到达了DB,它只是在它到达时没有做任何事情 –

回答

0

您尚未定义要更新的parameterType。请按以下步骤定义的参数类型:

这是一个例子:

<update id="updateUser" parameterType="User"> 
     UPDATE users SET 
      firstName = #{firstName}, 
      lastName = #{lastName}, 
      email = #{email} 
     WHERE ID = #{id} 
    </update> 

参见:https://www.tutorialspoint.com/mybatis/mybatis_mapper_xml.htmhttp://msdsalehi.blogspot.com/2012/05/how-t-send-multiple-parameters-to.html

+0

ok我设置了参数类型,但它仍然不工作。我不相信这是一个代码问题。我相信这是一个MySQL配置问题。我将id和current_hp设置为mapper.java中的参数,因此它们正确传入。在这两种情况下,更新查询都进入了数据库,它只是没有改变任何东西。 (请参阅我的第一张图片以供参考) –

相关问题