我是Netbeans的新手,我正在使用MS Access数据库(.mdb或.accdb)进行操作。
在我的代码中,我需要编写我的数据库文件的整个目录以便连接它,例如:
conn = DriverManager.getConnection("jdbc:ucanaccess://D:/abc/def/db.accdb");
我应该将数据库文件放在哪个文件夹中,以便我不需要编写整个目录来连接它,例如:conn = DriverManager.getConnection("jdbc:ucanaccess://db.accdb");
?
答案 0 :(得分:1)
您不想在代码中对数据库路径进行硬编码:好点!
不幸的是,看起来UCanAccess没有提供自动查找数据库的特殊文件夹:它只是试图在声明它的位置找到它。因此,如果您使用相对路径,它将依赖于Java处理,而File
类的Javadoc则表示:
默认情况下,java.io包中的类始终解析当前用户目录的相对路径名。此目录由系统属性user.dir命名,通常是调用Java虚拟机的目录。
如果你在窗口下使用短链接,你可以在短链接中指定一个开始目录,但我不会依赖它,因为即使在Windows上它也不常用。
所以正确的方法(和常见用法)是使用环境变量。如果您没有其他外部配置值,则此变量将包含数据库完整路径,或者它将包含属性文件的路径,该属性文件又包含其他配置值。