我正在使用 spring 映射器将更新查询从我的 Web 应用程序发送到 sql 服务器。我能够发送 SELECT
语句并从我的数据库接收正确的响应。当我发送 UPDATE 语句时,我可以看到 MySQL Workbench 的客户端连接部分中弹出查询,但更新并未发生。当我复制并粘贴相同的查询(来自客户端连接中显示的查询信息)并从 MySQL 工作台中运行它时,更新成功。我对两者使用相同的根用户和密码。 Web 应用程序在本地主机上运行。我的root用户拥有所有权限。我已经尝试了在该网站上看到的几种方法,但似乎没有任何效果。有谁知道我下一步应该尝试什么?如果需要更多信息,请告诉我。
Here is the update showing up in workbench when I send it from the web app
更新:我也在控制台中收到此错误。
“由 com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException 引起:超出锁定等待超时;尝试重新启动事务。”
所有提示都说只需终止有问题的连接,但即使我这样做,此错误仍然存在。发生某些事情导致锁定。有什么想法吗?
最佳答案
您尚未定义用于更新的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.htm和 http://msdsalehi.blogspot.com/2012/05/how-t-send-multiple-parameters-to.html
关于mysql - 在 Windows 10 上的 MySQL Server 5.7 中,更新无法远程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40559412/