连接到Firebird数据库时出现错误

问题描述 投票:1回答:1

Springboot:pom.xml org.firebirdsql.jdbc jaybird 4.0.0.java8。

应用程序.属性

spring.datasource.url=jdbc:firebirdsql://SERVER:3050/D:\company\DbPro\Data\file.fdb
spring.datasource.driverClassName=org.firebirdsql.jdbc.FBDriver

在查询数据库时,我得到一个错误。

查询数据库时出错,原因:org.springframework.jdbc.CannotGetJdbcConnectionException: 原因:org.springframework.jdbc.CannotGetJdbcConnectionException。Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: 在对文件 "D:companyDbProDatafile.fdb "进行 "CreateFile(open) "操作时出现IO错误;在尝试打开文件时出现错误;[SQLState:08001,ISC错误代码:335544344]。

怎么了?

java spring-boot jdbc firebird jaybird
1个回答
1
投票

如错误信息所示,Firebird试图连接到一个数据库。D:companyDbProDatafile.fdb不存在(或无法访问)。

你的路径不正确的原因在于 \ 表示属性文件中的转义。正如在 Properties.load:

  • 该方法不处理反斜杠字符。\在一个非有效的转义字符前加上反斜杠作为错误,反斜杠会被静静地删除。例如,在一个Java字符串中,序列"\z"会导致编译时的错误。相反,这个方法会默默地放弃反斜杠。因此,本方法将两个字符序列"\b"等同于单字''。b'.

要解决这个问题,一定要用双反斜线,或者用前斜线代替。所以使用

application.properties spring.datasource.url=jdbc:firebirdsql://SERVER:3050/D:\\company\\DbPro\\Data\\file.fdb

或者...

application.properties spring.datasource.url=jdbc:firebirdsql://SERVER:3050/D:/company/DbPro/Data/file.fdb

或者,不需要指定数据库的路径,而是在 databases.conf (火鸟3及以上)或 aliases.conf (Firebird 2.5及以下版本),并在连接字符串中指定别名,而不是路径。

© www.soinside.com 2019 - 2024. All rights reserved.