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]。
怎么了?
如错误信息所示,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及以下版本),并在连接字符串中指定别名,而不是路径。