MySQL select之后再update

博客介绍先查询页面再根据结果更改数据库,可使用SELECT …… FOR UPDATE实现。在MySQL运行正常,但MyBatis中报错。经排查,发现是分号问题,MyBatis不允许有符号,在配置文件数据库链接后添加allowMultiQueries=true可解决该问题。

1、先查询页面 而后再根据查询的结果来更改数据库,可以使用SELECT …… FOR UPDATE 来实现,具体的代码如下

SELECT *
FROM chat  //查询的表
WHERE senderid = 2 AND receiverid = 14 //查询的条件
FOR UPDATE;  //分号不能少,否则在MySQL中运行会报错
UPDATE chat SET ready = 1  //更改的内容
WHERE senderid = 2 AND receiverid = 14 //update的条件

 

2、在MySQL中运行没有报错,但是在mybatis中运行却报错,并显示错误:Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException

按照常规流程先看看是否有不存在的字段存在,或者是实体少写了什么,然后再看看SQL语句中是否与mybatis中的一些名字发生了冲突,但是这些均没有问题,而且在MySQL中运行正确就代表SQL语句也没错,后面看见那个分号总是有些碍眼,因为在mybatis中从来没有看见过符号,后面专门查询了一下果然是分号导致的错误,mybatis中不允许有符号的存在,后面经过查询才发现在配置文件中(我这里是application.properties文件)数据库链接加上添加allowMultiQueries=true,也即是:

原来是:

jdbc.url = jdbc:mysql://122.152.251.93:3306/zhyy?useUnicode=true&characterEncoding=utf8&useSSL=false

现在在后面加上allowMultiQueries=true:

jdbc.url = jdbc:mysql://122.152.251.93:3306/zhyy?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true

 现在运行,果然就没错了,这个问题比较少见,所以得记下来

 

转载于:https://www.cnblogs.com/attentle/p/11177128.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值