Support of CouchDB for Java


Supported Libraries

Library Version Supported
LightCouchexternal link Up to: 0.2.0
Ektorp Up to: 1.5.x

Supported Operations

Operation Methods supported
Insert org.lightcouch.CouchDbClient.save
org.lightcouch.CouchDbClient.post
org.lightcouch.CouchDbClient.batch
org.ektorp.CouchDbConnector.create
Select org.lightcouch.CouchDbClient.find
org.lightcouch.CouchDbClient.findAny
org.lightcouch.CouchDbClient.contains
org.ektorp.CouchDbConnector.get
org.ektorp.CouchDbConnector.contains
Delete org.lightcouch.CouchDbClient.remove
org.ektorp.CouchDbConnector.delete
Update org.lightcouch.CouchDbClient.update
org.ektorp.CouchDbConnector.update

Objects

Icon Description
Java CouchDB connection
Java CouchDB database
Java CouchDB collection
Java Unknown CouchDB connection
Java Unknown CouchDB database
Java Unknown CouchDB collection
Link type Source and destination of link Methods supported
belongsTo From Java CouchDB collection object to Java CouchDB database object
From Java CouchDB database object to Java CouchDB connection object
-
useLink Between the caller Java Method objects (constructors also) and Java CouchDB Collection Object batch
useSelectLink Between the caller Java Method objects (constructors also) and Java CouchDB Collection Object find
findAny
contains
get
useUpdateLink Between the caller Java Method objects (constructors also) and Java CouchDB Collection Object update
useDeleteLink Between the caller Java Method objects (constructors also) and Java CouchDB Collection Object remove
delete
useInsertLink Between the caller Java Method objects (constructors also) and Java CouchDB Collection Object save
post
create

What results can you expect?

Some example scenarios are shown below:

CouchDB databse and collection


    public CouchDBSimpleCrud() {
        HttpClient httpClient = new StdHttpClient.Builder()
            .host("localhost")
            .port(5984)
            .build();

        CouchDbInstance instance = new StdCouchDbInstance(httpClient);
        this.connector = instance.createConnector("productdb", true);
    }

    /**
     * Create a new product document
     */
    public void createProduct() {
        Product product = new Product("P001", "Laptop", 999.99);
        connector.create(product);
    }

    /**
     * Read a product document by ID
     */
    public void readProduct() {
        Product product = connector.get(Product.class, "P001");
        System.out.println("Product: " + product.getName());
    }

Insert Operation (LightCouch)

    public void createProduct() {
        Product product = new Product("P001", "Laptop", 999.99);
        connector.create(product);
    }

Select Operation (LightCouch)

public void readProduct() {
        Product product = connector.get(Product.class, "P001");
        System.out.println("Product: " + product.getName());
    }
}

Update Operation (Ektorp)

    public void updateProduct() {
        Product product = connector.get(Product.class, "P001");
        product.setPrice(1299.99);
        connector.update(product);
    }

Delete Operation (Ektorp)

    public void deleteProduct() {
        Product product = connector.get(Product.class, "P001");
        connector.delete(product);
    }

Known Limitations

  • If database name is not resolved in the CRUD API, then link is created with unknown database object.
  • If document ID cannot be resolved, link is created with unknown collection object.