database clojure derby embedded-database

database - Base de datos incrustada(Java pura) para Clojure



derby embedded-database (8)

¿Has mirado FleetDB ? Es una base de datos Clojure con un protocolo JSON y clientes en varios idiomas. Sospecho que probablemente podría ejecutarlo incrustado sin trabajar demasiado duro en ello.

Estoy en necesidad de una base de datos integrada para una aplicación Clojure. Tal vez sea el mismo criterio que para cualquier otra aplicación Java, pero de todos modos prefiero obtener la opinión de otras personas. No estoy seleccionando SQLite porque eso no es Java puro, por lo que la distribución de una aplicación independiente se vuelve mucho más compleja. Parece que el camino a seguir es Apache Derby. ¿Algo más que deba considerar?


Creo que Derby es una excelente base de datos integrada 100% Java, y es útil para una amplia variedad de aplicaciones, bien mantenida por una comunidad activa y muy bien documentada.



Otra opción a considerar es un mapa de Chronicle Map de valor-clave, porque es Java puro y proporciona una interfaz de Java Map vainilla, por lo que trabajar con él debería ser muy simple con Clojure.


Si no te importa NOSQL, neo4j es un db de gráfico incrustable con transacciones, licenciado bajo la GPL. Los enlaces más actualizados que he encontrado son https://github.com/hgavin/borneo

También hay un interesante proyecto db gráfico en clojure con backends conectables: https://github.com/flatland/jiraph

El aspecto bastante joven pero prometedor de OrientDB podría merecer una visita: http://www.orientechnologies.com/orient-db.htm

http://github.com/eduardoejp/clj-orient

Luego está http://jdbm.sourceforge.net/


Sin duda, H2

Aquí están los ajustes,

(def demo-settings { :classname "org.h2.Driver" :subprotocol "h2:file" :subname (str (System/getProperty "user.dir") "/" "demo") :user "sa" :password "" } )

Y luego el habitual código SQL de Clojure:

(with-connection demo-settings (create-table :DEMO_TABLE [:M_LABEL "varchar(120)"] [:M_DATE "varchar(120)"] [:M_COMMENT "varchar(32)"]))


Utilicé una base de datos integrada, H2 en clojure y usé clojureQL para acceder a ella. Sin embargo, tenga en cuenta que, dado que la base de datos está en proceso, no debe usarla para grandes cantidades de registros (> de 10.000 en una sola tabla), ya que tendrá grandes problemas de rendimiento, ya que la base de datos y el código compartirán la misma JVM.