代码之家  ›  专栏  ›  技术社区  ›  Don Werve

将嵌入式Derby与JRuby结合使用

  •  5
  • Don Werve  · 技术社区  · 16 年前

    尝试将JRuby1.2.0和Rails2.3.2与嵌入式Derby数据库一起使用。我抄袭了 derbytools.jar derby.jar $RUBY_HOME/lib 然而 rake db:migrate 仍然给予:

    The driver encountered an error: 
        cannot load Java class org.apache.derby.jdbc.ClientDriver
    

    AAAand…我打了一个预感,然后明白了。所以,我会把这个贴在这里,以防有人碰到和我一样的问题。

    我在网上找到的几乎所有文档都有以下内容 database.yml 德比配置:

    development:
        adapter: jdbc
        driver: org.apache.derby.jdbc.ClientDriver
        url: jdbc:derby:[db];create=true
        username: xxx
        password: xxx
    

    对于客户机/服务器安装程序,这可能很好,但是对于嵌入式Derby安装程序,您需要这样做:

    development:
        adapter: jdbc
        driver: org.apache.derby.jdbc.EmbeddedDriver
        url: jdbc:derby:[db];create=true
        username: xxx
        password: xxx
    

    注意“embeddedDriver”,而不是“clientDriver”。

    4 回复  |  直到 15 年前
        1
  •  2
  •   Don Werve    16 年前

    我要回答,因为我讨厌在我的个人资料里看到那个红色的块。

    当您使用嵌入式Derby时,ActiveRecord JDBC中还有一个微妙的bug——如果您不给它一个用户名和密码,任何东西都不会起作用。我已经找到了这个bug的原因,并且正在提交一个补丁,但是如果你遇到了和我一样的问题,请告诉我,我会在这里发布代码。

        2
  •  0
  •   lapinferoce    16 年前

    奇怪的是,在我的Ubuntu 9.04盒子里,它对我很好: 我只使用标准的Ubuntu软件包,我的数据库配置是:

    development:
     adapter: jdbc
     driver: org.apache.derby.jdbc.EmbeddedDriver
     url: jdbc:derby:[myapp];create=true
    
        3
  •  0
  •   Bryan Pendleton    15 年前

    clientDriver在derbyclient.jar中

        4
  •  0
  •   user260532    15 年前

    至于唐的回答,我在使用没有用户名/密码的clientdriver时遇到了这个错误: The driver encountered an error: java.sql.SQLNonTransientConnectionException: Password length (0) is outside the range of 1 to 255.

    在database.yml中设置用户名/密码解决了问题!