使用Clojure连接到Microsoft SQL Server

前端之家收集整理的这篇文章主要介绍了使用Clojure连接到Microsoft SQL Server前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 Windows身份验证连接到Microsoft sql Server 2008数据库.
我已经下载了MS sql Server的JDBC驱动程序,并将其添加到我的CLASSPATH.

以下是我的clojure代码.无论我做什么我得到java.sql.sqlException:没有适合的驱动程序找到jdbc:sqlserver

(ns Test)
(def db {:classname "com.microsoft.jdbc.sqlserver.sqlServerDriver"
               :subprotocol "sqlserver"
               :subname "server_name"
               :DatabaseName "database_name"
               :integratedSecurity true
})

(use 'clojure.contrib.sql)
(with-connection db 
      (with-query-results rs ["SELECT * FROM sys.objects"] (prn rs)))

我已经验证我有访问数据库,我的类路径是正确的,我有正确的JDBC版本下载.有人可以帮我吗

提前致谢

连接到数据库

在后来的软件版本(Clojure 1.6,Microsoft sql Server 2012和sql Server的Microsoft JDBC驱动程序4.0)中,Ash发布的代码仅适用于这些修改.我也根据目前的Clojure代码样式指南的知识更新了它.

(require '[clojure.java.jdbc :as jdbc])
;; you can optionally specify :host and :port to override the defaults
;; of "127.0.0.1" and 1433 respectively:
(def db-spec {:dbtype "mssql"
              :dbname "database-name"
              :user "sql-authentication-user-name"
              :password "password"})

(let [rows (jdbc/query db-spec
                       ["select * from sys.objects  where type = 'U'"])]
  (doseq [row rows] (println (:name row)))))

在同一台计算机上有多个sql Server实例的情况下,可以将实例名称指定为:host的一部分(此示例为同一台计算机上的sql Server Express的默认实例名称):

:host "localhost\\sqlexpress"

配置Leiningen

要使Leiningen与Microsoft JDBC驱动程序正常工作,请在project.clj中将以下内容与defproject合并:

:dependencies [[org.clojure/java.jdbc "0.6.1"]
               [sqljdbc4/sqljdbc4 "4.0"]]

由于Microsoft JDBC驱动程序在标准Maven存储库中不可用,因此目前我们有两种解决方案:lein-localrepoApache Archiva.

雷音,localrepo

lein-localrepo是一个Leiningen插件,可以使用当地的Maven仓库.安装完成后,需要将sqljdbc4.jar放到一些本地文件夹中,并运行以下命令:

$lein localrepo coords <PATH-TO-THE-FILE>/sqljdbc4-4.0.jar
$lein localrepo install sqljdbc4-4.0.jar sqljdbc4/sqljdbc4 "4.0"

Apache Archiva

Archiva是一个功能齐全的存储库管理软件,因此需要安装并运行服务.当存储库与Clojure世界或多个开发人员之间的项目共享时,情况非常方便.

设置完成后,通过其Web界面上传sqljdbc4.jar,并在project.clj中添加以下defproject:

:repositories {"http://localhost:8080/repository/internal/"}
原文链接:https://www.f2er.com/windows/364011.html

猜你在找的Windows相关文章