Mysql报错 Error querying database. Cause java.sql.SQLSyntaxErrorException

在尝试调用后端接口时,遇到了`Error querying database. Cause: java.sql.SQLSyntaxErrorException`的问题,错误源于SQL语法错误。查询语句在Navicat中正常,但在项目执行时由于分页插件自动添加了`LIMIT`导致报错。解决方案是删除SQL语句末尾的分号。完成修改后,查询成功执行并返回结果。博主分享了自己的学习和工作经验,包括在知名企业的经历。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天写一个查询功能的时候,出现了一个错误,当我写好后端接口,准备去前端掉用的时候出现了如下错误:

###Errorqueryingdatabase.Cause:java.sql.SQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear’LIMIT10’atline31###Theerrormayexistinfile[C:studentsourceslycplycp-server argetclassesmappercpdjtzScZcBxzwCpdjTzCxMapper.xml]###TheerrormayinvolvedefaultParameterMap###Theerroroccurredwhilesettingparameters###SQL:SELECTst.dbid,st.jbh,st.xgh_jbh,st.scrwd_id,st.cj_id,st.gzrq,st.pb_id,st.xgq_zl,st.xgq_jc,st.xgq_cpdj,st.xgh_zl,st.xgh_jc,st.xgh_cpdj,st.zljldw,st.xgsj,sb.bzmc,sbxx.bcmc,ry.xm,ry.ghFROMsc_zc_bxzw_cpdj_tzstLEFTJOINsc_zc_ccp_czszccONst.ccp_cz_id=szcc.dbidLEFTJOINsc_scrwdssONst.scrwd_id=ss.dbidLEFTJOINrl_ygryONst.czr_id=ry.dbidLEFTJOINsc_zc_pbszpONst.pb_id=szp.dbidLEFTJOINsc_bzsbONst.cj_id=sb.dbidLEFTJOINsc_bz_sbsbsONst.cj_gypb_id=sbs.dbidleftjoinsc_bcxxsbxxonszp.bc_id=sbxx.dbidORDERBYst.xgsjDESC;LIMIT###Cause:java.sql.SQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear’LIMIT10’atline31;badSQLgrammar[];nestedexceptionisjava.sql.SQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear’LIMIT10’atline31 (第一次写博客,图片一直上传失败,不知道为啥,只能用文字了,谅解一下)

sql语句如下:

SELECT
st.dbid,
st.jbh,
st.xgh_jbh,
st.scrwd_id,
st.cj_id,
st.gzrq,
st.pb_id,
st.xgq_zl,
st.xgq_jc,
st.xgq_cpdj,
st.xgh_zl,
st.xgh_jc,
st.xgh_cpdj,
st.zljldw,
st.xgsj,
sb.bzmc,
sbxx.bcmc,
ry.xm,
ry.gh
FROM
sc_zc_bxzw_cpdj_tz st
LEFT JOIN sc_zc_ccp_cz szcc ON st.ccp_cz_id = szcc.dbid
LEFT JOIN sc_scrwd ss ON st.scrwd_id = ss.dbid
LEFT JOIN rl_yg ry ON st.czr_id = ry.dbid
LEFT JOIN sc_zc_pb szp ON st.pb_id = szp.dbid
LEFT JOIN sc_bz sb ON st.cj_id = sb.dbid
LEFT JOIN sc_bz_sb sbs ON st.cj_gypb_id = sbs.dbid
LEFT JOIN sc_bcxx sbxx on szp.bc_id = sbxx.dbid
ORDER BY st.xgsj DESC;

这个问题也是比较头疼,找了很久(关键是这个sql语句在navicat上能运行),最后发现因为我这个项目用到了分页的插件,所以执行的时候后面会自动给我加上分页的sql语句,然而我最后排序那里写了个分号,所以报错了。

解决如下: 将sql语句末尾的分号删除即可解决

最后成功运行,查询到了结果

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值