sql语句常见异常问题解决方案。

技术分享 专栏收录该内容
8 篇文章 0 订阅

汇总mysql异常,以及对应的解决方案

常见异常1:

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ----
这种异常 不用多想,肯定是我们的sql语句出现问题,下面我只说我们经常犯的一种错误。

select和update语句最后加了逗号
在这里插入图片描述
解决方案:

  • 删掉最后一个逗号就可以。
  • update语句可以利用mybatis的 来写 在这里插入图片描述

常见异常2:

[Err] 1054 - Unknown column ‘----------’ in 'field list’
这种异常一般都是字段名称错误引起的。
在这里插入图片描述
这时候是我们的字段写错了 我们会发现数据库中并没有这个字段 而是我们的字段写错了。或者是因为字段名的大小写命名规范引起的不一致。

常见异常3:

MySQL同时执行多条SQL语句出现的异常。
Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE XXX

解决方案:
1.最简单的办法,在MySQL的连接字符串中设置allowMultiQueries参数置为true,
如:jdbc.url=jdbc:mysql://localhost:3306/ibatis?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true 即可。
2、在程序中对SQL语句以分号拆分成多条SQL语句,然后使用Statement的addBatch方法,最后executeBatch就行(此处推荐使用PreparedStatement addBatch() and executeBatch() and clearBatch())。

综上是因为mysql的JDBC驱动不支持这种写法,不过sqlserver的倒是支持,oracle的jdbc中甚至都不能出现分号 否则报java.sql.SQLException: ORA-00911: invalid character异常。

PS:MySQL设置了允许同时执行多条SQL语句后,将存在SQL注入的风险。参见:http://www.plhwin.com/2014/06/13/web-security-sql/

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

java组长

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值