当我运行黄瓜测试时,我正在尝试在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语句似乎没有在我的代码中被使用。为什么会发生这种情况?
答案 0 :(得分:0)
您在日志中所说的信息是您没有与数据库的连接。首先,您需要在application.proprties中建立与服务器的连接,例如本地主机/服务器,然后建立连接时,会将表映射到具有批注@Entity的类。注释@Entity只是将所有数据映射到该对象,并且您将从该Entity类访问的所有内容都将映射到该对象。但是您首先需要创建与服务器的连接。
选中此链接以创建与H2思想application.properties的连接
https://dzone.com/articles/integrate-h2-database-in-your-spring-boot-applicat