当使用了某些字段后,接口报错,经排查使用的是关键字

文章描述了一种在接口测试中遇到的错误,表现为CommunicationsException,这通常意味着数据库通信链路失败。问题可能由使用了MySQL的保留字作为字段名引起。建议避免使用数据库保留字,或者用反引号包裹字段名以解决问题。此外,文章提供了排查方法,包括检查SQL语句和考虑更换字段名称或添加复数形式。
摘要由CSDN通过智能技术生成

目录

 

接口测试工具报错:

idea控制台报错:

排查方法

附上mysql保留字列表:


当使用了某些字段后,接口报错,将报错信息翻译过来后,表面上是在说通信链路异常,其实不然

下面是报错信息示例 ---

接口测试工具报错:

### Error querying database.  Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure\n\nThe last packet successfully received from the server was 53,755 milliseconds ago. The last packet sent successfully to the server was 53,764 milliseconds ago.\r\n### The error may exist in file [C:\\zhiZong\\yayk-service\\ruoyi-admin\\target\\classes\\mapper\\gzap\\GzapGzrwPlanMapper.xml]\r\n### The error may involve com.ruoyi.web.controller.business.mapper.GzapGzrwPlanMapper.selectGzapGzrwPlanList-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT count(0) FROM 表名 WHERE user_id = ?\r\n### Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure\n\nThe last packet successfully received from the server was 53,755 milliseconds ago. The last packet sent successfully to the server was 53,764 milliseconds ago.\n; Communications link failure\n\nThe last packet successfully received from the server was 53,755 milliseconds ago. The last packet sent successfully to the server was 53,764 milliseconds ago.; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure\n\nThe last packet successfully received from the server was 53,755 milliseconds ago. The last packet sent successfully to the server was 53,764 milliseconds ago.",

    "code": 500

}

idea控制台报错:

 这时候,可以去排查一下各个字段是不是数据库的关键字保留字

排查方法

可以直接把SQL中可疑的字段用`  `标记起来或直接给查询语句全查。

比如我这里select * 就正常,但一个一个把字段列出来再查就报错了

 

分析出现这种情况,肯定是字段有问题,非特殊情况建议不要用数据库的关键字保留字

另外如果不想换字段,还可以加个复数形式嘛,比如describe就改成describes,就可以避免了

如果非要一字不差的使用关键字、保留字,那么可以使用`  `来标记,也就是感叹号左边的那个键

其他常见数据库的关键字或保留字详见保留字表

附上mysql保留字列表:

Reserved Words in 

MySQL 5.6.23

ACCESSIBLE

ADD

ALL

ALTER

ANALYZE

AND

AS

ASC

ASENSITIVE

BEFORE

BETWEEN

BIGINT

BINARY

BLOB

BOTH

BY

CALL

CASCADE

CASE

CHANGE

CHAR

CHARACTER

CHECK

COLLATE

COLUMN

CONDITION

CONSTRAINT

CONTINUE

CONVERT

CREATE

CROSS

CURRENT_DATE

CURRENT_TIME

CURRENT_TIMESTAMP

CURRENT_USER

CURSOR

DATABASE

DATABASES

DAY_HOUR

DAY_MICROSECOND

DAY_MINUTE

DAY_SECOND

DEC

DECIMAL

DECLARE

DEFAULT

DELAYED

DELETE

DESC

DESCRIBE

DETERMINISTIC

DISTINCT

DISTINCTROW

DIV

DOUBLE

DROP

DUAL

EACH

ELSE

ELSEIF

ENCLOSED

ESCAPED

EXISTS

EXIT

EXPLAIN

FALSE

FETCH

FLOAT

FLOAT4

FLOAT8

FOR

FORCE

FOREIGN

FROM

FULLTEXT

GET

GRANT

GROUP

HAVING

HIGH_PRIORITY

HOUR_MICROSECOND

HOUR_MINUTE

HOUR_SECOND

IF

IGNORE

IN

INDEX

INFILE

INNER

INOUT

INSENSITIVE

INSERT

INT

INT1

INT2

INT3

INT4

INT8

INTEGER

INTERVAL

INTO

IO_AFTER_GTIDS

IO_BEFORE_GTIDS

IS

ITERATE

JOIN

KEY

KEYS

KILL

LEADING

LEAVE

LEFT

LIKE

LIMIT

LINEAR

LINES

LOAD

LOCALTIME

LOCALTIMESTAMP

LOCK

LONG

LONGBLOB

LONGTEXT

LOOP

LOW_PRIORITY

MASTER_BIND

MASTER_SSL_VERIFY_SERVER_CERT

MATCH

MAXVALUE

MEDIUMBLOB

MEDIUMINT

MEDIUMTEXT

MIDDLEINT

MINUTE_MICROSECOND

MINUTE_SECOND

MOD

MODIFIES

NATURAL

NOT

NO_WRITE_TO_BINLOG

NULL

NUMERIC

ON

OPTIMIZE

OPTION

OPTIONALLY

OR

ORDER

OUT

OUTER

OUTFILE

PARTITION

PRECISION

PRIMARY

PROCEDURE

PURGE

RANGE

READ

READS

READ_WRITE

REAL

REFERENCES

REGEXP

RELEASE

RENAME

REPEAT

REPLACE

REQUIRE

RESIGNAL

RESTRICT

RETURN

REVOKE

RIGHT

RLIKE

SCHEMA

SCHEMAS

SECOND_MICROSECOND

SELECT

SENSITIVE

SEPARATOR

SET

SHOW

SIGNAL

SMALLINT

SPATIAL

SPECIFIC

SQL

SQLEXCEPTION

SQLSTATE

SQLWARNING

SQL_BIG_RESULT

SQL_CALC_FOUND_ROWS

SQL_SMALL_RESULT

SSL

STARTING

STRAIGHT_JOIN

TABLE

TERMINATED

THEN

TINYBLOB

TINYINT

TINYTEXT

TO

TRAILING

TRIGGER

TRUE

UNDO

UNION

UNIQUE

UNLOCK

UNSIGNED

UPDATE

USAGE

USE

USING

UTC_DATE

UTC_TIME

UTC_TIMESTAMP

VALUES

VARBINARY

VARCHAR

VARCHARACTER

VARYING

WHEN

WHERE

WHILE

WITH

WRITE

XOR

YEAR_MONTH

ZEROFILL

NewReserved Words in MySQL 5.6

GET

IO_AFTER_GTIDS

IO_BEFORE_GTIDS

MASTER_BIND

ONE_SHOT

PARTITION

SQL_AFTER_GTIDS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值