我有(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'语句一样。
最佳答案
我找到了。我已经将derby.system.home属性设置为数据库名称,而不是一个合理的(甚至是现有的)目录。我没有弄清楚到底是什么问题,但是当我将其设置为硬编码目录时,问题就消失了。
rc