当前位置: 首页 > news >正文

阿里云表格存储OtsQueryWrapper

最近项目因为数据量太大接入阿里云表格存储,粗略了看了下ots的java开发sdk,结果发现执行一个简单的多条件查询过于麻烦

下面是一段ots提供的sdk查询代码

/*** 通过BoolQuery进行And条件查询。* @param client*/
public static void andQuery(SyncClient client){/*** 查询条件一:RangeQuery,Col_Long的列值大于3。*/RangeQuery rangeQuery = new RangeQuery();rangeQuery.setFieldName("Col_Long");rangeQuery.greaterThan(ColumnValue.fromLong(3));/*** 查询条件二:MatchQuery,Col_Keyword的列值要匹配"hangzhou"。*/MatchQuery matchQuery = new MatchQuery();matchQuery.setFieldName("Col_Keyword");matchQuery.setText("hangzhou");SearchQuery searchQuery = new SearchQuery();{/*** 构造一个BoolQuery,设置查询条件为必须同时满足"查询条件一"和"查询条件二"。*/BoolQuery boolQuery = new BoolQuery();boolQuery.setMustQueries(Arrays.asList(rangeQuery, matchQuery));searchQuery.setQuery(boolQuery);//searchQuery.setGetTotalCount(true);//设置返回匹配的总行数。SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);//通过设置columnsToGet参数可以指定返回的列或返回所有列,如果不设置此参数,则默认只返回主键列。//SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();//columnsToGet.setReturnAll(true); //设置为返回所有列。//columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); //设置为返回指定列。//searchRequest.setColumnsToGet(columnsToGet);SearchResponse resp = client.search(searchRequest);//System.out.println("TotalCount: " + resp.getTotalCount()); //打印匹配到的总行数,非返回行数。System.out.println("Row: " + resp.getRows());}
}

没办法,作为一名忠实的mybatis-plus的粉丝,不得不借鉴一下mybatis-plus的某些特性,做了一个OtsQueryWrapper。

下面是一段经过封装后的ots查询代码

OtsQueryWrapper<UserInfo> wrapper = new OtsQueryWrapper<>();
wrapper.eq(UserInfo::getUserName,"张三");
wrapper.like(UserInfo::getPhone,"123940313");OtsQuery query = new OtsQuery();
query.setPageSize(10);
List<UserInfo> userInfos = OtsClient.queryPage(wrapper, "user_info", "user_info_index", "id", query,UserInfo.class, "");

是不是感觉又回到了mybatis-plus的世界哈哈

代码地址:ots-boot-starter: 阿里云OTS表格存储多元索引查询组件,可以像mybatis-plus一样做到轻松的wrapper封装查询


http://www.mrgr.cn/news/39751.html

相关文章:

  • Nginx部署前端Vue项目的深度解析
  • 学习高级深度学习的必备书——深度学习精粹
  • 银行家的舍入方法探讨20240930
  • [linux 驱动]input输入子系统详解与实战
  • python实用脚本(二):删除xml标签下的指定类别
  • 基于yolov8的100种蝴蝶智能识别系统python源码+pt模型+训练日志+精美GUI界面
  • 在PC端连接苹果手机(iPhone)时,即使已经开启了开发者模式(开发者权限),但仍然无法成功连接,是什么原因?
  • 特征工程——一门提高机器学习性能的艺术
  • 【LeetCode】动态规划—5. 最长回文子串(附完整Python/C++代码)
  • JDBC进阶
  • 【vs code(cursor) ssh连不上服务器(2)】但是 Terminal 可以连上,问题解决 ✅
  • C#名片识别接口集成方式、文字识别API
  • C++ STL(1)迭代器
  • 微信小程序 图片的上传
  • InnerClassLambdaMetafactory 内部类Lambda元工厂 源码解析
  • [Cocoa]_[初级]_[绘制文本如何设置断行方式]
  • 内核级理解套接字和全连接队列
  • 物联网智能设备:未来生活的变革者
  • centos发送邮件教程:从配置到发送全攻略!
  • 头戴式耳机性价比排名怎样?头戴式耳机性价比之王推荐!