Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法连接到共享驱动器上的数据库-UCanAccess_Java_Jdbc_Ucanaccess - Fatal编程技术网

Java 无法连接到共享驱动器上的数据库-UCanAccess

Java 无法连接到共享驱动器上的数据库-UCanAccess,java,jdbc,ucanaccess,Java,Jdbc,Ucanaccess,我已将应用程序设置为通过UCanAccess连接到Access数据库,但无法连接到位于共享驱动器上的数据库。参见下面的示例 String databasePath = "jdbc:ucanaccess://C:/Desktop/MyDB.accdb" \\\\ this works String databasePath = "jdbc:ucanaccess://servername/etc/MyDB.accdb" \\\\ does not work and throws no suitab

我已将应用程序设置为通过UCanAccess连接到Access数据库,但无法连接到位于共享驱动器上的数据库。参见下面的示例

String databasePath = "jdbc:ucanaccess://C:/Desktop/MyDB.accdb"  \\\\ this works
String databasePath = "jdbc:ucanaccess://servername/etc/MyDB.accdb" \\\\ does not work and throws no suitable driver found exception
有趣的是,当我将共享驱动器上的文件夹映射到某个字母时,例如p:-它成功连接

String databasePath = "jdbc:ucanaccess://P:/servername/etc/MyDB.accdb"  \\\\ this works
有可能绕过这个吗?我的用户对该文件夹具有r/w权限,但我不想映射每台计算机上的驱动器。
谢谢

数据库驱动程序只能处理其指定的协议。 大多数jdbc驱动程序只能处理其特定数据库服务器的网络协议

您使用的是access jdbc驱动程序,它只能处理对给定accdb文件的文件访问

当您尝试以下url时:

jdbc:ucanaccess://servername/etc/MyDB.accdb

驱动程序对本地不存在的路径进行本地文件访问。 您所期望的是,驱动程序将与您的服务器建立SMB/CIFS连接,但他不能


您必须将操作系统上的SMB/CIFS共享映射到本地驱动器号。因为操作系统会为您处理网络SMB/CIFS内容。JDBC驱动程序可以像访问本地文件一样访问该文件。

您的连接URL中没有足够的正斜杠来表示UNC路径。如您所述,对于到
C:\Desktop\MyDB.accdb
的本地连接,您可以使用

String-databasePath=“jdbc:ucanaccess://C:/Desktop/MyDB.accdb”;
同样,对于到
\\servername\etc\MyDB.accdb
的UNC连接,您可以使用

String databasePath=“jdbc:ucanaccess:////servername/etc/MyDB.accdb";

尝试//servername时,jdbc驱动程序必须处理文件服务器的smb/cifs协议,但他不能。您需要操作系统来处理共享的网络部分。将共享映射到驱动器号后,jdbc将尝试像访问本地文件一样访问它,并且您的操作系统正在处理smb/cifs。这就是allIt的魅力所在。我有一种奇怪的感觉,那是一种像刀砍一样微不足道的东西。感谢Gord解决了这个问题。