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
相关产品推荐
相关产品推荐

