0

我需要采取哪些步骤才能让我的 Informix JDBC 驱动程序成为 korma 中受支持的数据库?Informix 有一个 jdbc 驱动程序,我已经用驱动程序的演示 Java 程序进行了测试。我的连接参数有效。

我已经开始了一个 Clojure 项目,但我一直在尝试什么,甚至出现错误,所以我可以从那里继续前进,更不用说连接了。

我的 Informix JDBC 驱动程序 3.50 在 maven 中

mvn install:install-file \
-DgroupId=com.informix \
-DartifactId=ifxjdbc \
-Dversion=3.50 \
-Dfile=/opt/IBM/Informix_JDBC_Driver/lib/ifxjdbc.jar \
-Dpackaging=jar \
-DgeneratePom=true

以下示例适用于 postgres。我想为 Informix 做这个。我想知道我必须做什么才能使用类似的东西为 Informix 数据库创建连接

(defdb prod (postgres {:db "korma"
                       :user "korma"
                       :password "kormapass"
                       ;; optional keys
                       :host "myhost"
                       :port "4567"
                       :delimiters ""}))

我很确定我不能在上面的示例中只使用“informix”来代替 postgres,并且会发生奇迹。我只是对要创建什么定义感到困惑。任何帮助或指向示例的指针将不胜感激。

4

1 回答 1

1

尝试使用classnamesubprotocol属性:

(def db-config {:classname "com.informix.jdbc.IfxDriver"
                :subprotocol "informix-sqli"
                :subname (format "//%s:1533/%s" 
                                 "123.45.67.89"
                                 "testDB:INFORMIXSERVER=myserver")
                :user "user"
                :password "password"})

(defdb db db-config)

看看源代码中的不同定义,postgres只是那些属性的简写。即使没有informix预定义的功能,您也可以自己滚动。

根据这个 doc driver name is com.informix.jdbc.IfxDriver,您还可以在那里检查数据库 URI:

The following example shows a database URL that connects 
to a database called testDB:

jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;
user=rdtest;password-test

还要记住将正确的依赖信息添加到您的project.clj文件中:

 :dependencies [...
                [com.informix.jdbc/com.springsource.com.informix.jdbc "3.0.0.JC3"]
                ...

以及要找到该依赖项的 springsource 存储库:

  :repositories [["springsource-release" "http://repository.springsource.com/maven/bundles/release"]
                 ["springsource-external" "http://repository.springsource.com/maven/bundles/external"]]
于 2014-03-05T18:33:30.330 回答