问题:mybatis-plus使用静态工具查询时出现语句错误报错?
报错信息:
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 'order where (user_id in ('3'))' at line 1
原因:
这是因为在使用mybatis-plus的Lambda查询时,查询的表名没有使用反引号(`)进行转义,导致sql语句中出现了非法标识符。
解决方法:
在mybatis-plus中使用lambda查询时,需要使用反引号(`)对表名进行转义。修改后的代码如下:
// 使用反引号对表名进行转义 Db.lambdaQuery(Order.class).in(Order::getUser_id, id).list();