idea中使用mybatis的公共sql片段报错:<statement> or DELIMITER expected, got 'xxx'
问题
如以下公共sql片段:会显示<statement> or DELIMITER expected, got 'u'
错误
<sql id="base_column_list"> u.user_id,u.nick_name,u.email,u.password,u.sex, u.birthday,u.school,u.person_introduction,u.join_time,u.last_login_time, u.last_login_ip,u.status,u.notice_info,u.total_coin_count,u.current_coin_count, u.theme </sql>
原因
idea会对xml中的所有代码片段进行sql语法的检查(由绿色框包围),而公共sql片段的部分(如上面的问题),显然不符合sql的语法规则,所以会报错。
移除idea对xml的语法检查固然可以解决问题,但是同样会导致所有sql检查都消失不方便编写代码。
解决方法
在idea的File - Settings - Editor - Language Injections中找到xml文件的配置项MyBatis sql|select|insert|update|delete|statement,删去其中的sql,修改为select|insert|update|delete|statement。
移除了对sql片段的sql语法检查。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步