Support of CouchDB for Java


Supported Libraries

LibraryVersionSupported
LightCouchexternal linkUp to: 0.2.0
EktorpUp to: 1.5.x

Supported Operations

OperationMethods supported
Insertorg.lightcouch.CouchDbClient.save
org.lightcouch.CouchDbClient.post
org.lightcouch.CouchDbClient.batch
org.ektorp.CouchDbConnector.create
Selectorg.lightcouch.CouchDbClient.find
org.lightcouch.CouchDbClient.findAny
org.lightcouch.CouchDbClient.contains
org.ektorp.CouchDbConnector.get
org.ektorp.CouchDbConnector.contains
Deleteorg.lightcouch.CouchDbClient.remove
org.ektorp.CouchDbConnector.delete
Updateorg.lightcouch.CouchDbClient.update
org.ektorp.CouchDbConnector.update

Objects

IconDescription
Java CouchDB connection
Java CouchDB database
Java CouchDB collection
Java Unknown CouchDB connection
Java Unknown CouchDB database
Java Unknown CouchDB collection
Link typeSource and destination of linkMethods supported
belongsToFrom Java CouchDB collection object to Java CouchDB database object
From Java CouchDB database object to Java CouchDB connection object
-
useLinkBetween the caller Java Method objects (constructors also) and Java CouchDB Collection Objectbatch
useSelectLinkBetween the caller Java Method objects (constructors also) and Java CouchDB Collection Objectfind
findAny
contains
get
useUpdateLinkBetween the caller Java Method objects (constructors also) and Java CouchDB Collection Objectupdate
useDeleteLinkBetween the caller Java Method objects (constructors also) and Java CouchDB Collection Objectremove
delete
useInsertLinkBetween the caller Java Method objects (constructors also) and Java CouchDB Collection Objectsave
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.