- 引入Maven依赖
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-cassandra</artifactId>
</dependency>
- 配置类
@Configuration
public class CassandraConfig extends AbstractCassandraConfiguration {
@Override
protected String getKeyspaceName() {
return "keyspace name";
}
@Override
public CqlSessionFactoryBean cassandraSession() {
CqlSessionFactoryBean bean = super.cassandraSession();
bean.setUsername("username");
bean.setPassword("password");
bean.setKeyspaceName(getKeyspaceName());
bean.setContactPoints("contact points");
bean.setPort(9042);
bean.setLocalDatacenter("data center");
return bean;
}
// 自定义配置
@Override
protected DriverConfigLoaderBuilderConfigurer getDriverConfigLoaderBuilderConfigurer() {
return builder -> builder
// 请求超时时间
.withInt(DefaultDriverOption.REQUEST_TIMEOUT, 10000)
.build();
}
}
- 使用
CassandraTemplate
SimpleStatement cql = QueryBuilder.selectFrom("table_name")
.distinct()
.all()
.column("id")
.whereColumn(CqlIdentifier.fromCql("id"))
.in(QueryBuilder.raw("'c6a46f20-be5e-48a3-ae4c-6c1486c0e0c8'"))
.build();
List<String> result = temp.select(cql, String.class);
CqlSession
String query = "SELECT * FROM table_name WHERE f1=? AND f2=? AND time >= ? AND time <= ? order by time desc";
PreparedStatement preparedStatement = session.prepare(query);
Statement statement = preparedStatement.bind("A", "B", 1701264920739L, 1801274920739L).setPageSize(10000);
ResultSet rows = session.execute(statement);
for(Row row : rows){
System.out.println(row.getString("id") + "\t" + row.getLong("time"));
}