Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Cassandra准备语句使用Cassandra操作Spring Boot_Java_Spring_Spring Boot_Cassandra - Fatal编程技术网

Java 使用Cassandra准备语句使用Cassandra操作Spring Boot

Java 使用Cassandra准备语句使用Cassandra操作Spring Boot,java,spring,spring-boot,cassandra,Java,Spring,Spring Boot,Cassandra,我需要准备语句/而不是使用Cassandra操作界面和会话的查询生成器 任何示例或最近的文档。对于使用java的Cassandra,对于spring数据Cassandra v1.x,getSession()方法可以让您直接访问会话。但是,自v2.0以来,类似的API已被弃用 这里有一个来自中国的例子 对于spring数据cassandra v1.x,的getSession()方法可以让您直接访问会话。但是,自v2.0以来,类似的API已被弃用 这里有一个来自中国的例子 请参阅以检查如何在使用ja

我需要准备语句/而不是使用Cassandra操作界面和会话的查询生成器
任何示例或最近的文档。对于使用java的Cassandra,对于spring数据Cassandra v1.x,getSession()方法可以让您直接访问会话。但是,自v2.0以来,类似的API已被弃用

这里有一个来自中国的例子


对于spring数据cassandra v1.x,的getSession()方法可以让您直接访问会话。但是,自v2.0以来,类似的API已被弃用

这里有一个来自中国的例子

请参阅以检查如何在使用java datastax驱动程序时使用prepared Station

然而,我建议将所有PreparedStatement存储在缓存中(例如映射),同时应用程序通过创建BoundStatement来初始化和重用相同的RequireId。 例如:

//Here Key is query string 
 private static final Map<String, PreparedStatement> psMap = new ConcurrentHashMap<String, PreparedStatement>();

 //Will be invoked @ initialization 
 public void init(Session session) {
        this.session = session;
        for (QuerySetEnum cql : QuerySetEnum.values()) {

            psMap.put(cql.getStatement(), session.prepare(cql.getStatement()));
        }


        //In Dao Impl class 
        //Get bounded statment + execute by passing the value
         @Override
    public void decreaseStats(long size, long count, String mapname,
            int bucketId) {
        BoundStatement boundStatement = getBoundStatement(QuerySetEnum.DECREASE_STATS);
        metaTemplate.execute(boundStatement.bind(size, count, mapname,
                bucketId));

    }
//Below is the implementation how to get BoundStatement out to prepared statment cache
    private BoundStatement getBoundStatement(QuerySetEnum query) {
        PreparedStatement preparedStatement = queryPool
                .getPreparedStatement(query);
        BoundStatement boundStatement = new BoundStatement(preparedStatement);
        return boundStatement;
    }
//这里的键是查询字符串
私有静态最终映射psMap=新的ConcurrentHashMap();
//将在初始化时调用
公共void init(会话){
this.session=会话;
for(querystenum cql:querystenum.values()){
psMap.put(cql.getStatement(),session.prepare(cql.getStatement());
}
//在Dao Impl类中
//通过传递值获取有界station+execute
@凌驾
public void decreaseStats(长大小、长计数、字符串映射名、,
int bucketId){
BoundStatement BoundStatement=getBoundStatement(querystenum.DECREASE_STATS);
metaTemplate.execute(boundStatement.bind)(大小、计数、映射名、,
bucketId);
}
//下面是如何将BoundStatement输出到准备好的Statement缓存的实现
private BoundStatement getBoundStatement(QuerySetEnum查询){
PreparedStatement PreparedStatement=queryPool
.getPreparedStatement(查询);
BoundStatement BoundStatement=新的BoundStatement(preparedStatement);
返回语句;
}
请参阅以检查如何在使用java datastax驱动程序时使用准备好的语句

然而,我建议将所有PreparedStatement存储在缓存中(例如映射),同时应用程序通过创建BoundStatement来初始化和重用相同的RequireId。 例如:

//Here Key is query string 
 private static final Map<String, PreparedStatement> psMap = new ConcurrentHashMap<String, PreparedStatement>();

 //Will be invoked @ initialization 
 public void init(Session session) {
        this.session = session;
        for (QuerySetEnum cql : QuerySetEnum.values()) {

            psMap.put(cql.getStatement(), session.prepare(cql.getStatement()));
        }


        //In Dao Impl class 
        //Get bounded statment + execute by passing the value
         @Override
    public void decreaseStats(long size, long count, String mapname,
            int bucketId) {
        BoundStatement boundStatement = getBoundStatement(QuerySetEnum.DECREASE_STATS);
        metaTemplate.execute(boundStatement.bind(size, count, mapname,
                bucketId));

    }
//Below is the implementation how to get BoundStatement out to prepared statment cache
    private BoundStatement getBoundStatement(QuerySetEnum query) {
        PreparedStatement preparedStatement = queryPool
                .getPreparedStatement(query);
        BoundStatement boundStatement = new BoundStatement(preparedStatement);
        return boundStatement;
    }
//这里的键是查询字符串
私有静态最终映射psMap=新的ConcurrentHashMap();
//将在初始化时调用
公共void init(会话){
this.session=会话;
for(querystenum cql:querystenum.values()){
psMap.put(cql.getStatement(),session.prepare(cql.getStatement());
}
//在Dao Impl类中
//通过传递值获取有界station+execute
@凌驾
public void decreaseStats(长大小、长计数、字符串映射名、,
int bucketId){
BoundStatement BoundStatement=getBoundStatement(querystenum.DECREASE_STATS);
metaTemplate.execute(boundStatement.bind)(大小、计数、映射名、,
bucketId);
}
//下面是如何将BoundStatement输出到准备好的Statement缓存的实现
private BoundStatement getBoundStatement(QuerySetEnum查询){
PreparedStatement PreparedStatement=queryPool
.getPreparedStatement(查询);
BoundStatement BoundStatement=新的BoundStatement(preparedStatement);
返回语句;
}

使用spring数据cassandra,这将为您带来神奇的效果。
应用程序示例

@存储库
接口ISensorMeasureRepository扩展了CassandraRepository{

@Query('select*from sensor_measures_simple其中sensor_id=?0和measure_time>=?1和measure_time使用spring数据cassandra,这将为您带来所有魔力。
应用程序示例

@存储库
接口ISensorMeasureRepository扩展了CassandraRepository{

@质疑('select*from sensor_measures_simple其中sensor_id=?0和measure_time>=?1和measure_time您是
spring data cassandra
?是Ajit使用spring data cassandra吗
spring data cassandra
?是Ajit使用spring data cassandran需要使用where子句查询表,该子句使用cassandra提供特定行的对象Operations或CqlTemplate接口上述CqlTemplate.execute(insertStatement);返回voidRequire需要使用where子句查询表,该子句使用CassandraOperations或CqlTemplate接口提供特定行的对象上述CqlTemplate.execute(insertStatement);返回voidHey,Thank.@Query annotation是使用准备好的语句还是原始cql查询?Hey,Thank.@Query annotation是使用准备好的语句还是原始cql查询?
@Repository
interface ISensorMeasureRepository extends CassandraRepository<SensorMeasureEntity> {

  @Query('select * from sensor_measures_simple where sensor_id=?0 and measure_time>=?1 and measure_time<=?2')
  List<SensorMeasureEntity> getBySensorAndDateRange(int sensorId, Date start, Date end)

  @Query('select * from sensor_measures_simple where sensor_id=?0 ALLOW FILTERING')
  Stream<SensorMeasureEntity> getAllBySensor(int sensorId)
}