【发布时间】:2016-03-14 20:31:43
【问题描述】:
我的 Maven 项目需要加载数据到数据库,import.sql 包含以下内容:
LOAD DATA LOCAL INFILE
`'/home/jack/ubuntu/bword/src/main/resources/Term.txt' INTO TABLE Term FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' (id,name);`
这里使用的路径是我机器上的绝对路径。如何指定相对路径以使其工作?我试过这些:
/bword/src/main/resources/Term.txt
../bword/src/main/resources/Term.txt
../bword/src/main/resources/Term.txt
../src/main/resources/Term.txt
这些都不起作用。该文件位于 Maven 目录中的默认目录 src/main/resources。
我正在使用 JBoss 和休眠,JPA。
【问题讨论】:
-
什么在消耗这个文件?一个 Maven 插件(哪个?)一个 Java 主插件?测试?
-
其实我也不是很清楚。我认为它被 Java Persistence API 和 Hibernate 使用,因为我使用这些 API 来访问 mysql 数据库。按照约定,import.sql 会在 Web 应用启动时自动执行,Hibernate 会创建数据库并填充数据。
-
好的,那么文件将被你的应用程序使用,而不是被Maven使用,不会有
src/main/resources的概念,你可以删除它,然后用/Term.txt试试(意思是:在类路径的根) -
HHH000388:不成功:将数据本地 INFILE '/Term.txt' 加载到由 '\t' 行终止的表项字段中,这些行由 '\n' (id,name) 终止。无法发送文件:/Term.txt(没有这样的文件或目录)
-
那么简单的
Term.txt呢? (我不喜欢这种尝试游戏,但根据给定的信息,总是值得一试)