You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java使用H2内存数据库抛出JdbcSQLSyntaxErrorException语法错误求助

你遇到的语法错误是建表语句的字段定义处缺了逗号导致的。

查看你定义的SQL_CREATE_TABLE常量,拼接NOMBRE字段的那行代码末尾没有加逗号:

+ " NOMBRE varchar(100) NOT NULL" // 此处结尾缺失逗号
+ " NUMERO_CUENTA NUMERIC(10, 2) NOT NULL, "

两段字符串拼接后实际生成的SQL片段会变成NOMBRE varchar(100) NOT NULL NUMERO_CUENTA NUMERIC(10, 2) NOT NULL,不符合SQL语法规范,因此H2会抛出语法错误异常。

修复方案非常简单,只需要在NOMBRE字段定义的结尾补上逗号即可,修改后代码如下:

private static final String SQL_CREATE_TABLE = "DROP TABLE IF EXISTS CUENTAS; CREATE TABLE CUENTAS "
        + "("
        + " ID INT PRIMARY KEY, "
        + " NOMBRE varchar(100) NOT NULL, "
        + " NUMERO_CUENTA NUMERIC(10, 2) NOT NULL, "
        + " SALDO FLOAT NOT NULL"
        + ")";

后续遇到同类SQL语法报错时,也可以先把拼接完成的最终SQL打印出来,直接复制到H2控制台执行,就能快速定位错误位置。

内容的提问来源于stack exchange,提问作者Santiiiii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:18:00