TableStore+java:建立SyncClient+getRow讀取一行數據

一、經過控制檯或者客戶端,在TableStore中新建了實例owlforest,在實例詳情中獲取到實例訪問地址endPoint web

二、新建表user,肯定主鍵爲userid(Interger)類型,由於TableStore最多支持4個主鍵,這裏先嚐試一個主鍵的狀況。spring

三、經過控制檯新增數據 app

四、修改pom.xmlsocket

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

五、經過主鍵,用getRow獲取一行數據(使用默認配置建立 SyncClient)ui

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 = "accessKeyId";
    final String accessKeySecret = "accessKeySecret";
    final String instanceName = "實例名";
    @RequestMapping("/query")
    public String query() {
        SyncClient client = new SyncClient(endPoint, accessKeyId, accessKeySecret, instanceName);
        GetRowRequest rowRequest = new GetRowRequest();
        SingleRowQueryCriteria queryCriteria = new SingleRowQueryCriteria("user");
        //讀取數據時,返回的最多版本個數。
        queryCriteria.setMaxVersions(5);
        //主鍵
        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("userid", PrimaryKeyValue.fromLong(2));
        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());
                responseMsg = responseMsg + "Name:" + col.getName() + ",Value:" + col.getValue() + ", ";
            }
            return responseMsg;
        }
    }
}

採用自定義配置的方式建立SyncClientrest

ClientConfiguration clientConfiguration = new ClientConfiguration();
// 設置創建鏈接的超時時間。
clientConfiguration.setConnectionTimeoutInMillisecond(5000);
// 設置socket超時時間。
clientConfiguration.setSocketTimeoutInMillisecond(5000);
// 設置重試策略,若不設置,採用默認的重試策略。
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy());
// 其餘配置項省略
SyncClient client = new SyncClient(endPoint, accessKeyId, accessKeySecret, instanceName, clientConfiguration);

六、結果code

相關文章
相關標籤/搜索