TableStore:读取数据getRow

Posted wsfu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TableStore:读取数据getRow相关的知识,希望对你有一定的参考价值。

1、通过控制台或者客户端,在TableStore中新建了实例owlforest,在实例详情中获取到实例访问地址endPoint

 

2、新建表user,确定主键为userid(Interger)类型,因为TableStore最多支持4个主键,这里先尝试一个主键的情况。

 

3、通过控制台新增一行数据

 

4、修改pom.xml

<dependency>
    <groupId>com.aliyun.openservices</groupId>
    <artifactId>tablestore</artifactId>
    <version>4.10.2</version>
</dependency>

 

5、通过主键,用getRow获取一行数据

package com.aliyun.demo.controller;

import com.alicloud.openservices.tablestore.SyncClient;
import com.alicloud.openservices.tablestore.model.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Tablestore {

    final String endPoint = "这里填写实例访问地质";
    final String accessKeyId = "这里填写子账户的KeyId,详情参照阿里云文档";
    final String accessKeySecret = "这里填写子账户的Keyecret,详情参照阿里云文档";
    final String instanceName = "owlforest"; //实例名

    @RequestMapping("/query")
    public String query() {
        /*// ClientConfiguration提供了很多配置项,以下只列举部分。
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        // 设置建立连接的超时时间。
        clientConfiguration.setConnectionTimeoutInMillisecond(5000);
        // 设置socket超时时间。
        clientConfiguration.setSocketTimeoutInMillisecond(5000);
        // 设置重试策略,若不设置,采用默认的重试策略。
        clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy());
        SyncClient client = new SyncClient(endPoint, accessKeyId, accessKeySecret, instanceName, clientConfiguration);*/

        SyncClient client = new SyncClient(endPoint, accessKeyId, accessKeySecret, instanceName);
        GetRowRequest rowRequest = new GetRowRequest();

        //参数是表名
        SingleRowQueryCriteria queryCriteria = new SingleRowQueryCriteria("user");
        //读取数据时,返回的最多版本个数。
        queryCriteria.setMaxVersions(5);
        //主键
        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        //这里要用PrimaryKeyValue.fromLong,因为主键是Integer类型,如果写成fromString是要报错的
        primaryKeyBuilder.addPrimaryKeyColumn("userid", PrimaryKeyValue.fromLong(1));
        queryCriteria.setPrimaryKey(primaryKeyBuilder.build());

        rowRequest.setRowQueryCriteria(queryCriteria);
        GetRowResponse rowResponse = client.getRow(rowRequest);
        if(rowResponse == null){
            return "未获取到TableStore的数据!";
        }else{
            String responseMsg = "";
            Column[] cols = rowResponse.getRow().getColumns();
            for (Column col : cols){
                System.out.println(col.getName());
                System.out.println(col.getValue());
            }
            return "有数据!";
        }
    }
}

 

以上是关于TableStore:读取数据getRow的主要内容,如果未能解决你的问题,请参考以下文章

《TableStore最佳实践:GEO索引打造店铺搜索系统》

JAVA POI读取Excel中Cell为null的处理

《TableStore最佳实践:轻松实现轨迹管理与地理围栏》

EMQX Cloud更新:数据集成新增 HStreamDB & Tablestore

基于TableStore的数据采集分析系统介绍

基于 MySQL + Tablestore 分层存储架构的大规模订单系统实践-架构篇