关于JAVA获取OTS(表格存储)数据的问题

1.定义地址,访问id、密码、实例名、表名、主键名。(注意ots只能通过主键名进行查询
private static String endPoint = "http://jxwz-ots.cn-******.ots.yun.zj";//地址
private static String accessKeyId = "******";//id
private static String accessKeySecret = "******";//密码
private static String instanceName = "j*******s";//实例名
private static String table = "s*******t";//表名
private static String PRIMARY_KEY_NAME = "c*******j";//主键名
2.获取连接
SyncClient client = new SyncClient(endPoint, accessKeyId, accessKeySecret, instanceName);
3.获取表中数据,官网有很多例子,本次使用的是范围查询
RangeRowQueryCriteria rangeRowQueryCriteria = new RangeRowQueryCriteria(table);
// 设置起始主键
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn(PRIMARY_KEY_NAME, PrimaryKeyValue.fromString(con1));
rangeRowQueryCriteria.setInclusiveStartPrimaryKey(primaryKeyBuilder.build());
// 设置结束主键
primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn(PRIMARY_KEY_NAME, PrimaryKeyValue.fromString(con2));
rangeRowQueryCriteria.setExclusiveEndPrimaryKey(primaryKeyBuilder.build());
rangeRowQueryCriteria.setMaxVersions(1);
while (true) {
    GetRangeRequest getRangeRequest = new GetRangeRequest(rangeRowQueryCriteria);
    GetRangeResponse getRangeResponse = client.getRange(getRangeRequest);
    for (Row row : getRangeResponse.getRows()) {
        Column[] columns = row.getColumns();
        for(Column column:columns){//填写业务逻辑
            if("i_url".equals(column.getName())){
                String url = column.getValue().toString();
            }
        }
    }
    // 若nextStartPrimaryKey不为null, 则继续读取.
    if (getRangeResponse.getNextStartPrimaryKey() != null) {
        rangeRowQueryCriteria.setInclusiveStartPrimaryKey(getRangeResponse.getNextStartPrimaryKey());
    } else {
        break;
    }
}
4.踩坑经历

提示和com.google.protobuf冲突:报错UnsupportedOperationException: This is supposed to be overridden by subclasses.官网给的解决方案是在maven中加jar-with-dependencies

此方法貌似解决了问题因为用main方法测试通过,但放入项目中后,启动项目后依然报此错误,本人使用的是tablestore4.2.3。最后经过一系列的验证,把原来项目中的protobuf版本改成和tablestore中自带的版本一致后,问题解决。



 
  

你可能感兴趣的:(关于JAVA获取OTS(表格存储)数据的问题)