团队中某据说是淘宝出身的前成员的代码,功能没对接完就跑路了,一个多月之后我接的手。 建的两个表,使用了desc字段,然后插入的时候报错: INSERT INTO htm_refund_history (refund_id, user_id, grouper_id, order_id, status, type, refund_reason_id, desc, del_flag, create_time, update_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ### Cause: java.sql.SQLSyntaxErrorException: 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 'desc, del_flag, create_time, update_time) VALUES (1, 1658842424178995201, 165882' at line 1
咋一看是看不出什么问题的,我也纠结了好一会。检查了一遍代码,调试了一遍,发现应该没有问题,但是报错依旧。后来我打开表结构,看到 desc 字段是加了引号的 `desc`。刚开始时我没怎么在意,心想应该不会是这个问题吧?但是等我排查了一遍还没解决问题,我决定试一试,把 desc 改成 description,没想到居然可以了。 原来mybatis plus这货在生成SQL语句时,并没有为MySQL的保留字添加上引号,导致执行到 desc 时报错了。关键是这个团队成员写完代码居然都没有自己跑一遍,自己写的代码,表里一条数据都插不进去都没发现。此外还有Controller没有加@RequestBody注解导致获取不到请求参数、同一个表的金额字段一个用decimal(10, 2)另一个用decimal(11)等低级错误。之前却还评价我的某段代码“极其混乱”,让我印象非常不好。让你改bug你好好改就行了嘛,你自己写的一坨答辩接口都跑不通还好意思说别人? |