Using Java SDK, you can specify adhoc parameter to be false to exploit prepared statement without having to manage the prepared statement/etc.
SDK handles this and multi-node environment, etc seamlessly.
From: Java SDK and Prepared Statement
N1qlParams.build().consistency(ScanConsistency.REQUEST_PLUS).adhoc(false));