SQL错误无法通过Spring Boot App中的Cucumber测试创建H2数据库

时间:2018-09-15 09:06:04

标签: java sql-server spring spring-boot cucumber

当我运行黄瓜测试时,我正在尝试在Spring Boot项目中创建H2数据库。

我的 application.yml 中有此文件:

booking:
  datasource:
    username: sa
    password:
    url: jdbc:h2:mem:bookingdb;DATABASE_TO_UPPER=false;DB_CLOSE_DELAY=-1
    driver-class-name: org.h2.Driver

我的黄瓜测试存储在 src / acceptTest / java 文件夹中的 Cucumber 包中。 下面的 data.sql 文件存储在 src / acceptTest / resources 文件夹中:

CREATE TABLE tlink (
  link_id int,
  ext_id varchar(255),
  address_id varchar(255),
  client_id varchar(255),
  instance varchar(255),
  source varchar(255),
  timestamp datetime2
);

INSERT INTO TLINK(link_id, ext_id, address_id, client_id, instance, source, timestamp) VALUES(13582,'0000059811','3037260','0000059811','1','1', '2018-08-22 15:13:34');

当我运行Runner类时,正在执行测试,但未创建数据库。

下面是一些日志:

  

原因:org.hibernate.exception.SQLGrammarException:无法准备语句

     

由以下原因引起:org.h2.jdbc.JdbcSQLException:未找到表“ tclientlink”; SQL语句:

data.sql中的CREATE语句似乎没有在我的代码中被使用。为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

您在日志中所说的信息是您没有与数据库的连接。首先,您需要在application.proprties中建立与服务器的连接,例如本地主机/服务器,然后建立连接时,会将表映射到具有批注@Entity的类。注释@Entity只是将所有数据映射到该对象,并且您将从该Entity类访问的所有内容都将映射到该对象。但是您首先需要创建与服务器的连接。

选中此链接以创建与H2思想application.properties的连接

https://dzone.com/articles/integrate-h2-database-in-your-spring-boot-applicat