写 springboot + H2 单元测试 ,H2是内存模式,需要在resources 文件夹下准备schema.sql(建表语句)和data.sql(插入测试数据)供测试使用。
运行时报如下错误:
Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "([*]";
expected "(, WITH, SELECT, FROM";
SQL statement:
( [42001-197]
【springboot + H2 单元测试遇到的问题 ([*]】从报错信息看,很明显是sql语法错误,出错位置在 ‘(’ 处(报错信息中[*]处),期望"(, WITH, SELECT, FROM"。看来报错信息没什么大帮助。下面贴出我的sql:
create table user
(
id varchar(32) primary key,
user_name varchar(50),
email varchar(50),
phone_number varchar(50),
user_password varchar(50),
user_status char(1),
create_time timestamp DEFAULT CURRENT_TIMESTAMP,
last_login_time timestamp,
last_update_time timestamp DEFAULT CURRENT_TIMESTAMP ,
avatar varchar(300)
)
我检查了一下,没发现什么硬伤错误,而且在h2 console里是可以执行的。此时怀疑人生,上网查一圈也没找到解决办法,甚至连一样的报错信息也没有(那可能就是错误太低级,没人犯)。果然,在 ) 后加一个分号,问题解决。