sql语句 异常问题解决方案
- 汇总mysql异常,以及对应的解决方案
- 常见异常1:
- 常见异常2:
- 常见异常3:
汇总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/2014/06/13/web-security-sql/
更多推荐
sql语句常见异常问题解决方案。
发布评论