0.背景
mybatis 执行insert语句的时候,报上面的错,找了很长时间才发现错误。把问题和解决办法写下来,供大家参考。
1.问题及解决办法
主要是两个方面的问题,
第一个是在xml文件中出现了注释,也就是下面这样子。
select *from -- 这是一条注释 student /* 这是一条注释 */
出现了上面这样的注释,尽量把这些注释删除掉。
经实测,有的 注释 并不会报这个错,有的注释会报这个错(删除后正常)。
第二个方面,xml 文件错误,主要原因有关参数、占位符、引号之类的错误,举几例子。
insert into index_transfer_save(id,org_id, project_id, region_code, time, company_name, countNum, type, project_name) values (#{id}, (SELECT id FROM xxxx WHERE code= #(regionCode)), #{projectId}, #{regionCode}, #{time}, #{companyName}, #{countnum}, #{type}, #{projectName})
上面代码有一段是
SELECT id FROM xxxx WHERE code= #(regionCode)
单独拎出来可以看到明显的错误, #{regionCode} 写成了 #(regionCode)。但是一开始放在sql语句里没有看出。
所以,请仔细检查sql语句。