文档入口:
https://docs.datastax.com/en/developer/java-driver/4.11/
1 Session Build
import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.cql.*; try (CqlSession session = CqlSession.builder().build()) { // (1) ResultSet rs = session.execute("select release_version from system.local"); // (2) Row row = rs.one(); System.out.println(row.getString("release_version")); // (3) }
CqlSession threadsafe, can be shared in application.
https://docs.datastax.com/en/developer/java-driver/4.11/manual/core/
2 QueryBuilder
Select select = selectFrom("ks", "user") .column("first_name") .column("last_name") .whereColumn("id").isEqualTo(bindMarker()); // SELECT first_name,last_name FROM ks.user WHERE id=?
https://docs.datastax.com/en/developer/java-driver/4.11/manual/query_builder/
3 ObjectMapper
entity annotation and dao mapper。
import com.datastax.oss.driver.api.mapper.annotations.Entity; import com.datastax.oss.driver.api.mapper.annotations.PartitionKey; @Entity public class Product { @PartitionKey private UUID id; private String description; public Product() {} public Product(UUID id, String description) { this.id = id; this.description = description; } public UUID getId() { return id; } public void setId(UUID id) { this.id = id; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } }
import com.datastax.oss.driver.api.mapper.annotations.Dao; import com.datastax.oss.driver.api.mapper.annotations.Delete; import com.datastax.oss.driver.api.mapper.annotations.Insert; import com.datastax.oss.driver.api.mapper.annotations.Select; @Dao public interface ProductDao { @Select Product findById(UUID productId); @Insert void save(Product product); @Delete void delete(Product product); }
import com.datastax.oss.driver.api.mapper.annotations.DaoFactory; import com.datastax.oss.driver.api.mapper.annotations.DaoKeyspace; import com.datastax.oss.driver.api.mapper.annotations.Mapper; @Mapper public interface InventoryMapper { @DaoFactory ProductDao productDao(@DaoKeyspace CqlIdentifier keyspace); }
CqlSession session = CqlSession.builder().build(); InventoryMapper inventoryMapper = new InventoryMapperBuilder(session).build();
ProductDao dao = inventoryMapper.productDao(CqlIdentifier.fromCql("inventory")); dao.save(new Product(UUID.randomUUID(), "Mechanical keyboard"));
老版Cassandra用法,参考文章:
http://lifestack.cn/archives/467.html