1

ファイル内でホストされているデータベースに接続する必要があります。ポートを指す代わりに、次の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

4 に答える 4

3

Nishantが正しかったことがわかりました。文字をエスケープしたり、円記号を使用したりする必要はまったくありません。これは機能します:

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

私は実際にそれを試しましたが、別のバグのためにそれが機能するのを見ることができませんでした。バグは2つありましたが、1つしかないと思いました。

于 2013-03-14T13:27:28.297 に答える
0

JDBCのエスケープは{}を使用していると思います。だからそれは

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

また

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

またはそのバリエーション。

于 2013-03-13T20:19:43.227 に答える
0

システムに依存しないセパレーターの場合はFile.separator、標準APIから使用する必要があります。

ファイル(Java SE 7)

システムに依存するデフォルトの名前区切り文字。このフィールドは、システムプロパティfile.separatorの値の最初の文字を含むように初期化されます。UNIXシステムでは、このフィールドの値は'/'です。Microsoft Windowsシステムでは、「\」です。

File.separatorcharこれをとして返しますString

于 2013-03-13T20:21:42.430 に答える
0

ダブルバックスラッシュを試すこともできます、それは私のために働きます

"jdbc:sqlite:C:\\Documents and Settings\\users.db"
于 2014-04-29T03:25:23.583 に答える