Abstracting Couchbase operations for java projects

We have a java based application, with several modules and we are using Couchbase as our backend database. I wanted to know what is the best way to abstract out the Couchbase connection and operation layer(s) [ by operation(s) i mean insert, delete, run N1QL queries etc etc…] in the project. Could anyone give me a good design?

Thank you!