【鸿蒙】数据库--查询数据

简介: 3.查询关系型数据库提供了两种查询数据的方式:直接调用查询接口。使用该接口,会将包含查询条件的谓词自动拼接成完整的SQL语句进行查询操作,无需用户传入原生的SQL语句。执行原生的SQL语句进行查询操作。

3.查询

关系型数据库提供了两种查询数据的方式:

  • 直接调用查询接口。使用该接口,会将包含查询条件的谓词自动拼接成完整的SQL语句进行查询操作,无需用户传入原生的SQL语句。
  • 执行原生的SQL语句进行查询操作。

(1)谓词使用

关系型数据库提供了用于设置数据库操作条件的谓词AbsRdbPredicates,其中包括两个实现子类RdbPredicates和RawRdbPredicates:


  • RdbPredicates:开发者无需编写复杂的SQL语句,仅通过调用该类中条件相关的方法,如equalTo、notEqualTo、groupBy、orderByAsc、beginsWith等,就可自动完成SQL语句拼接,方便用户聚焦业务操作。
  • RawRdbPredicates:可满足复杂SQL语句的场景,支持开发者自己设置where条件子句和whereArgs参数。不支持equalTo等条件接口的使用。


类名 接口名 描述
RdbStore ResultSet query(AbsRdbPredicates predicates, String[] columns)

查询数据。predicates:谓词,可以设置查询条件。AbsRdbPredicates的实现类有两个:RdbPredicates和RawRdbPredicates。RdbPredicates:支持调用谓词提供的equalTo等接口,设置查询条件。RawRdbPredicates`:仅支持设置表名、where条件子句、whereArgs三个参数,不支持equalTo等接口调用。columns:规定查询返回的列。


RdbStore ResultSet querySql(String sql, String[] sqlArgs)


RdbPredicates提供了很多的方法。简单点说就是设置获取数据的条件



这里只用了几种 ,感兴趣的可以去多了解

关系型数据库提供了查询返回的结果集ResultSet,其指向查询结果中的一行数据,供用户对查询结果进行遍历和访问。ResultSet对外API大家可以去官网了解

//谓词方式查询
        RdbPredicates rdbPredicates = new RdbPredicates("test")
        //获取年龄为28的数据
                .equalTo("age", 28)
                .orderByDesc("salary");
        //columns:规定查询返回的列。
        String[] columns = new String[]{"id","name","age","salary"};
        ResultSet resultSet = rdbStore.query(rdbPredicates, columns);
        for (int i=0;i<resultSet.getRowCount();i++){
            resultSet.goToRow(i);
            System.out.println("+++++++++id"+resultSet.getInt(resultSet.getColumnIndexForName("id")));
            System.out.println("+++++++++name"+resultSet.getString(resultSet.getColumnIndexForName("name")));
            System.out.println("+++++++++age"+resultSet.getInt(resultSet.getColumnIndexForName("age")));
            System.out.println("+++++++++salary"+resultSet.getDouble(resultSet.getColumnIndexForName("salary")));
        }

查询结果,因为我年龄设置的28,所以只有这一个人的数据,如果年龄一样的话就会 根据工资的大小类排列顺序


(2)原生sql

原生sql语句我们只需要改写几行代码就行了

//原生sql
        ResultSet resultSet = rdbStore.
                querySql("select id,name,age,salary from test where age=? order by salary desc", new String[]{"28"});
        for (int i=0;i<resultSet.getRowCount();i++){
            resultSet.goToRow(i);
            System.out.println("+++++++++id"+resultSet.getInt(resultSet.getColumnIndexForName("id")));
            System.out.println("+++++++++name"+resultSet.getString(resultSet.getColumnIndexForName("name")));
            System.out.println("+++++++++age"+resultSet.getInt(resultSet.getColumnIndexForName("age")));
            System.out.println("+++++++++salary"+resultSet.getDouble(resultSet.getColumnIndexForName("salary")));
        }

在这里我把第一个年龄也改为了28,然后他就根据工资排序了,可以看到是降序排列


相关文章
|
2天前
|
存储 数据库
Union All:数据库查询的得力助手
Union All:数据库查询的得力助手
|
1天前
|
文字识别 负载均衡 算法
视觉智能开放平台产品使用合集之人脸数据库已创建超过1000个人脸数据,怎么开通更多人脸数据库
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
14小时前
|
SQL 关系型数据库 数据管理
数据管理DMS产品使用合集之归档数据至其它MySQL数据库时,如何指定目的库
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
8 1
|
2天前
|
关系型数据库 MySQL 分布式数据库
PolarDB产品使用问题之要验证MySQL迁移后的数据库数据与迁移前的数据一致性,该怎么办
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
PolarDB产品使用问题之要验证MySQL迁移后的数据库数据与迁移前的数据一致性,该怎么办
|
1天前
|
Linux 数据库
Linux安装达梦数据库达梦数据
Linux安装达梦数据库达梦数据
3 0
|
1天前
|
SQL 存储 Oracle
老程序员分享:petshop详解之二:PetShop数据访问层之数据库访问设计
老程序员分享:petshop详解之二:PetShop数据访问层之数据库访问设计
|
1天前
|
前端开发 JavaScript 小程序
Navicat使用导入向导批量插入数据到数据库
Navicat使用导入向导批量插入数据到数据库
|
2天前
|
运维 关系型数据库 分布式数据库
PolarDB产品使用问题之如何加快数据库查询速度
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
2天前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之迁移后数据库数据不同步是什么导致的
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
3天前
|
关系型数据库 MySQL 数据库
MySQL SELECT查询实战:练习题精选,提升你的数据库查询技能
MySQL SELECT查询实战:练习题精选,提升你的数据库查询技能

热门文章

最新文章