我有(java)代码,它使用文本文件作为源数据在derby数据库中创建和填充表。我目前正在使用Win7上的eclipse indigo运行它,它运行正常。
我在该程序中有其他代码,根据用户的选择,创建数据所在的数据库。我不能让那部分工作。
它使用'jdbc:derby:x \ y; create = true'作为其连接字符串;它从DriverManager.getConnection(connectionString,properties)抛出一个异常,说“数据库目录blah \ blah \ x \ y存在;但是,它不包含预期的'service.properties'文件。也许......'和一些更无关紧要的东西。
在我运行之前,我删除目录x和y,然后对我的代码所在的eclipse项目执行刷新。这些目录目前与我的eclipse项目位于同一目录中。运行我的代码后,目录x和y都已创建,但不是我的数据库。
如果我删除目录,打开命令提示符,将我的默认值设置为包含x的目录,启动ij,并使用上面给出的相同连接字符串的connect语句,它将创建目录和数据库。那么我的程序将按预期填充数据库,没有错误。
我还尝试直接在我的项目所在的工作空间目录中创建数据库(即y没有x的父目录),结果相同,所以我不想它是数据库名称规范中的斜杠。
所以我想知道我可能做错了什么阻止该程序创建数据库,就像ij中的'connect'语句一样。
答案 0 :(得分:1)
我找到了。我已将derby.system.home属性设置为数据库名称而不是合理(甚至是现有)目录。我还没有确切地解决它的问题,但是当我将它设置为硬编码目录时,问题就消失了。
RC