带有文件路径上空格的JDBC连接字符串(sqlite,hsqldb)

时间:2013-03-13 20:05:52

标签: java sqlite jdbc hsqldb

我必须连接到托管在文件中的数据库。而不是指向一个端口,我必须指向一个像这个sqlite连接字符串的文件:

"jdbc:sqlite:database/users.db"

但我无法弄清楚当路径上有空格时如何指定路径,如:

"jdbc:sqlite:C:\\Documents and Settings\\users.db"
"jdbc:sqlite:C:/Documents\ and\ Settings/users.db"

这些都不起作用。

最好我还希望能够以系统无关的方式指定此路径(即在Windows和Linux上都可以工作)。无需对每个进行特定处理。

4 个答案:

答案 0 :(得分:3)

事实证明,Nishant是对的,我根本不需要逃避角色或使用反斜杠。这有效:

"jdbc:sqlite:C:/Documents and Settings/users.db"

我实际上已经尝试过了,但另一个错误让我无法看到它正常工作。我有两个错误,但我以为我只有一个。

答案 1 :(得分:0)

我认为JDBC转义是{}。这将成为

"jdbc:sqlite:{C:/Documents and Settings/users.db}"

"{jdbc:sqlite:C:/Documents and Settings/users.db}"

或其中的一种变体。

答案 2 :(得分:0)

对于独立于系统的分隔符,您应该使用标准API中的File.separator

File (Java SE 7)

  

系统相关的默认名称分隔符。此字段初始化为包含系统属性file.separator的值的第一个字符。在UNIX系统上,该字段的值为“/”;在Microsoft Windows系统上它是'\'。

File.separator将此char作为String返回。

答案 3 :(得分:0)

我们也可以尝试双反斜杠,它对我有用

"jdbc:sqlite:C:\\Documents and Settings\\users.db"