繁体   English   中英

如何在Java中为数据库提供相对路径

[英]How to give a relative path in Java for database

我想问一下如何在java中为数据库提供相对路径(ms访问),这样当我将项目放在其他驱动器中时,就不必编辑路径部分了。

下面给出的是数据库的绝对路径:

con=DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};**DBQ=c:\\project\\a.mdb"** );

但是,如果我将项目更改到另一个文件夹,请假设d:,则必须像下面这样编辑此路径部分:

con=DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=**d:\\project\\a.mdb"** );

我想给出一个相对路径,以便我的项目可以在任何带有该\\ project \\ a.mdb的驱动器上运行

好吧,这就是我们所谓的parameterize 只需将路径作为参数,然后在运行时将其传递进来即可。这是一个演示:

public class DBOperation {
    public static void main(String[] args) {
     String path=args[0];
     String url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};**DBQ="+path+"**)";
     ...
    }
}

并通过以下方式运行程序:

java DBOperation c:\project\a.mdb

我不知道您使用的驱动程序在使用路径时有多灵活(从未使用过该驱动程序)。 但是解决该问题的一种方法是允许将路径配置为启动命令行参数,env变量或系统属性。

您还可以确保数据库在类路径中,并通过使用getResource找到数据库的位置,该方法将为您提供数据库的URL。 然后可以将其转换为文件路径。

AFAIK,如果省略了路径名的驱动器名称部分,则Windows应用程序将在“当前”驱动器上查找。

因此,尝试将您使用的路径名从"d:\\\\project\\\\a.mdb"更改为"\\\\project\\\\a.mdb"

但是请注意,这将意味着您需要在启动应用程序之前设置当前驱动器。 例如,在命令提示符下键入D:C: :。


更好的选择是使数据库路径成为命令行参数或属性文件中的条目或其他内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM