Driver JDBC para CouchDB

Pessoal estou criando a implementação do CouchDB para JDBC.

Lógico não é a melhor maneira, pois o CouchDB é completamente diferente dos bancos normais, mas até ta ficando bacana a implementação.

Quem quiser dar uma olhada, opnião, colaborar, bastar olhar no GitHub, o código fonte (http://github.com/fellix/couchdb-j)

Um pouco mais no meu blog

[]'s

pelo jeito em vez de jdbc, o próprio pessoal do projeto preferiu partir para essa linha:

http://wiki.apache.org/couchdb/Getting_started_with_Java :

[quote]CouchDB4J

CouchDB4J is an updated Java library for CouchDB. It handles the REST style calls to the CouchDB server behind the scenes, and give you a handle on the JSON objects directly. CouchDB4J uses JSON-lib to handle mapping to/from JSON objects, which makes getting/setting properties on the objects very easy. You can even map Java objects to JSON objects and back to make the process easier. [/quote]

por exemplo:

[code]Session s = new Session(“localhost”,5984);
Database db = s.getDatabase(“foodb”);

Document doc = db.getDocument(“documentid1234”);
doc.put(“foo”,“bar”);
db.saveDocument(doc);

ViewResults resultAdHoc = db.adhoc(“function (doc) { if (doc.foo==‘bar’) { return doc; }}”);
[/code]

Depois faz um Dialect do Hibernate para o DriverJDBC do CouchDB :lol:

Sim realmente o pessoal resolver fazer diferente, logico que o JDBC são para bancos orientados a tabelas, e para o COuch é um pouco mais complicado trabalhar com o JDBC, tem diversos formatos sem suporte e talz, mas é uma maneira de não mudar o jeito de programar para usar o JDBC, e com o Driver nesse formato apesar de cada requisição que vc faz parecido com JDBC ele esconde uma requisião HTTP por traz.

Desse jeito até é possivel fazer um dialeto para o Hibernate :slight_smile:

Penso nisso amis para frente, ainda ha a necessidade de ajustar o PreparedStatment :slight_smile:

Dialeto do hibernate?

Tu vai abstrair um modelo relacional em cima do couchdb depois abstrair um modelo OO em cima do relacional?!
Todas essas abstrações de java me deixam maluco as vezes.

Um modelo orientado a documentos é muito mais próximo do OO que do relacional. Pode ser que isso faça total sentido para o seu problema, mas nessa abstração toda, com toda impedance mismatch de cada modelo se acumulando tu vai perder toda a simplicidade e expressividade da interface restful do couchdb.

Seria melhor simplesmente fazer um repository que acesse a persistência rest do couchdb usando jax-rs.