首先导入pom,这是datastax的驱动,很好用。spring
<dependency> <groupId>com.datastax.cassandra</groupId> <artifactId>cassandra-driver-mapping</artifactId> <version>3.0.2</version> </dependency>
创建session链接:session
PoolingOptions poolingOptions = new PoolingOptions(); poolingOptions .setConnectionsPerHost(HostDistance.LOCAL, 4, 10) .setConnectionsPerHost(HostDistance.REMOTE, 2, 4) .setMaxRequestsPerConnection(HostDistance.LOCAL, 32768) .setMaxRequestsPerConnection(HostDistance.REMOTE, 2000) .setHeartbeatIntervalSeconds(60); cluster = Cluster.builder() .addContactPoint(address) .withPoolingOptions(poolingOptions) .build(); Metadata metadata = cluster.getMetadata(); for (Host host : metadata.getAllHosts()) { log.info("Data center: " + host.getDatacenter() + "; Host: " + host.getAddress() + "; Rack: " + host.getRack()); } session = cluster.connect();
对于model类的创建好像官网没提示多个PartitionKey怎么写,我也是猜出来的:app
@PartitionKey 后面的0 -5表明查询时参数依次添加,不标明的话用mapper查询会报错ui
,原文:spa
Ordinal to add when the partition key has multiple components.
@Table(keyspace = "wumartcluster", name = "table_name") public class TestClass{ @PartitionKey(0) private Long exe_id; @PartitionKey(1) private String promo_plan; @PartitionKey(2) private String mandt; @PartitionKey private Date execute_by_date; @PartitionKey(4) private String shops_no; @PartitionKey(5) private String goods_no; private Date start_date;
}日志
今天补充一点,datastax 的 Mapper 只初始化一次就行,否则会不停的报warn日志警告component
Mapper<ObjectBean> mapper ;
if (mapper == null) { mapper = cassandraClient.getMapper(ObjectBean.class); }
这里本身写个单例模式就好了,或者springMVC整合,很少说。ip