Database Clojure的嵌入式(纯Java)数据库
我需要一个用于Clojure应用程序的嵌入式数据库。也许这和其他Java应用程序的标准是一样的,但我还是想听听其他人的意见。我不选择SQLite,因为它不是纯Java,所以独立应用程序的分发变得更加复杂。看来应该走的路是ApacheDerby。还有什么我需要考虑的吗?Database Clojure的嵌入式(纯Java)数据库,database,clojure,derby,embedded-database,Database,Clojure,Derby,Embedded Database,我需要一个用于Clojure应用程序的嵌入式数据库。也许这和其他Java应用程序的标准是一样的,但我还是想听听其他人的意见。我不选择SQLite,因为它不是纯Java,所以独立应用程序的分发变得更加复杂。看来应该走的路是ApacheDerby。还有什么我需要考虑的吗? 毫无疑问, 这里是设置 (def demo-settings { :classname "org.h2.Driver" :subprotocol "h2:file" :subname (
毫无疑问,
这里是设置 (def demo-settings
{
:classname "org.h2.Driver"
:subprotocol "h2:file"
:subname (str (System/getProperty "user.dir") "/" "demo")
:user "sa"
:password ""
}
)
然后是通常的Clojure SQL代码:
(with-connection demo-settings
(create-table :DEMO_TABLE
[:M_LABEL "varchar(120)"]
[:M_DATE "varchar(120)"]
[:M_COMMENT "varchar(32)"]))
我在clojure中使用了一个嵌入式数据库H2,并使用clojureQL访问它。但是请注意,由于数据库正在处理中,因此不应将其用于大量记录(单个表中的记录数大于10000s),因为数据库和代码将共享同一个JVM,因此会出现巨大的性能问题。您看过吗?这是一个Clojure数据库,具有JSON协议和多种语言的客户端。我怀疑您可以在不太努力的情况下运行嵌入式数据库。我认为Derby是一个优秀的100%Java嵌入式数据库,它对各种各样的应用程序都很有用,由活跃的社区进行良好维护,并且有很好的文档记录。如果您不介意NOSQL,neo4j是一个带有事务的嵌入式图形数据库,根据GPL许可。我发现的最新绑定有 clojure中还有一个有趣的graph db项目,具有可插拔的后端: 仍然很年轻但看起来很有前途的OrientDB可能值得一看:
>
我用它来指定后端。考虑的另一个选项是一个密钥值存储,因为它是纯java,提供了一个香草java <代码> map < /C>接口,所以使用它应该非常简单,使用Cujur. < /P>期待这个答案。我在Java中使用HSQLDB的次数多于Derby,但仅用于单元测试。想知道是否有人使用过FleetDB,因为它有一个Clojure客户端……我也肯定是H2。它在clojureql查询库中运行良好。使用clojureql时,H2需要解决一个问题,H2没有支持的使用语法的连接,当我上次检查时,您必须在等效对象上使用更详细的连接。