如何将JDBC支持的数据库(Informix)添加到korma中

时间:2014-03-05 18:24:29

标签: clojure korma

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

我已经开始了一个Clojure项目,但我仍然坚持要尝试甚至错误,所以我可以从那里继续前进,更不用说连接了。

My 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,并且会发生魔法。我对于创造什么样的定义感到困惑。任何帮助或指向示例的指示将不胜感激。

1 个答案:

答案 0 :(得分: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)

看看不同的定义in the source codepostgres只是这些属性的简写。即使没有informix预定义函数,您也可以自己动手。

根据to this doc驱动程序名称为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"]]