Android 中数据库查询方法query()中的selectionArgs的用法

利用rawQuery(String sql, String[] selectionArgs)查询表中的的数据 开始写的代码是这样子的:private void findData(){ sqLiteDatabase=dbHelper.getWritableDatabase(); Cursor cursor = sqLiteDatabase.rawQuery("select id as _id,name from searchHisTab", null); Log.d("TAG","查... 阅读详情
    Android 中涉及数据库查询的地方一般都会有一个 query() 方法,而这些 query中有大都(全部?)会有一个参数 selectionArgs,比如下面这个android.database.sqlite.SQLiteDatabase.query():

public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)

selection 参数很好理解,就是 SQL 语句中 WHERE 后面的部分,即过滤条件, 比如可以为 id=3 AND name='Kevin Yuan' 表示只返回满足 id 为 3 且 name 为 "Kevin Yuan" 的记录。

    再实际项目中像上面那样简单的“静态”的 selection 并不多见,更多的情况下要在运行时动态生成这个字符串,比如:
public doQuery(long id, final String name) {
  mDb.query("some_table", // table name 
        null, // columns
        "id=" + id + " AND name='" + name + "'", // selection
         //...... 更多参数省略
  );
}

    在这种情况下就要考虑一个字符转义的问题,比如如果在上面代码中传进来的 name 参数的内容里面有单引号('),就会引发一个 "SQLiteException syntax error .... "。

    手工处理转义的话,也不麻烦,就是 String.replace() 调用而已。但是 Android SDK 为我们准备了 selectionArgs 来专门处理这种问题:

public void doQuery(long id, final String name) {
  mDb.query("some_table", // table name 
        null, // columns
        "id=" + id + " AND name=?", // selection
        new String[] {name}, //selectionArgs
         //...... 更多参数省略
  );
  // ...... 更多代码
}

    也就是说我们在 selection 中需要嵌入字符串的地方用 ? 代替,然后在 selectionArgs 中依次提供各个用于替换的值就可以了。在 query() 执行时会对 selectionArgs 中的字符串正确转义并替换到对应的 ? 处以构成完整的 selection 字符串。 有点像 String.format()。

    不过需要注意的是 ? 并不是“万金油”,只能用在原本应该是字符串出现的地方。比如下面的用法是错误的:

public void doQuery(long id, final String name) {
  mDb.query("some_table", // table name 
        null, // columns
        "? = " + id + " AND name=?", // selection XXXX 错误!? 不能用来替换字段名
        new String[]{"id", name}, //selectionArgs
      //...... 更多参数省略
  );
  // ...... 更多代码

}

http://blog.youkuaiyun.com/uoyevoli/article/details/4970860

Android 中数据库查询方法query() 中的selectionArgs 的用法.doc Android 中数据库查询方法query() 中的selectionArgs 的用法 立即下载

相关推荐

Cursor集成Claude 4.6免费版:本地IDE合规调用指南

大语言模型编程助手(LLM Copilot)已成为现代开发标配,其核心能力依赖于上下文理解、代码推理与结构化输出等关键技术原理。Anthropic官方提供的Claude系列模型,尤其Claude 4.6,凭借200K超长上下文、tool use函数调用和严格可控的API设计,在工程实践中展现出显著技术价值。该能力可无缝嵌入本地IDE环境,支撑代码解释、跨文件分析、单元测试生成等高频开发场景。本文聚焦Cursor这一开源可审计IDE,详解如何合规复用Anthropic免费tier接口(/v1/messages

weixin_34095889的博客 537

Android中SQLite数据库查询详解

Android中SQLite数据库query()方法详解,内有增删改查教程链接

记录分享编程与冲浪知识 1万+

《YOLOv12魔术师专栏》专栏介绍 & 专栏目录

《YOLOv12魔术师专栏》专栏介绍 & 专栏目录

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 5059

android 数据库查询selection 的 in 用法,Android应用的数据库开发中为啥要用selectionArgs和whereArgs?...

在Android开发中,除了非常轻量级的应用,基本上都需要用到数据库来存储数据。Android中自带的数据库系统是SQLite。不过SQL语句和在其他的结构化数据库系统(MySQL、MSSQL之类的)中使用的并没有太大差别。在需要执行SQL语句的时候,就是需要持有一个SQLiteDatabase类的引用,然后调用对应的方法。rawQuery方法和execSQL方法用于执行纯SQL语句,前者可以返回...

weixin_42522817的博客 840

Python对象的基本组成和内存示意图及引用的本质

在Python中,变量也称为:对象的引用(reference)。变量存储的就是对象的地址。变量不需要显式声明类型。根据变量引用的对象,Python解释器自动确定数据类型。一个内存块,拥有特定的值,支持特定类型的相关操作。变量位于:栈内存(压栈出栈等细节,后续再介绍)。⚠️Python是动态类型语言。变量通过地址引用了“对象”。

Calor13的博客 557

第十二天:Python字典(Dict)详解

字典(Dictionary)是Python中最强大的数据类型之一,它是一种可变的、无序的键值对(key-value)集合。字典中的元素是通过键(key)来存取的,而不是通过偏移量(如列表中的索引)。 字典的核心特性包括: 键值对结构:每个元素由一个键和一个值组成,中间用冒号(:)分隔 无序性:字典中的元素没有固定的顺序(Python 3.7+版本中字典会保持插入顺序,但不应依赖此特性进行顺序操作) 可变性:可以动态地添加、修改或删除键值对 键的唯一性:字典中的键必须是唯一的,如果重复,后面的键值对会覆盖

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1679

Android 中数据库查询方法 query() 中的 selectionArgs 的用法

Android 中涉及数据库查询的地方一般都会有一个 query() 方法,而这些 query 中有大都(全部?)会有一个参数 selectionArgs,比如下面这个 android.database.sqlite.SQLiteDatabase.query():public Cursor query (String table, String[] columns, String select

farproc's blog 6万+

Python爬虫实战:抓取CVE安全漏洞数据库

在网络安全领域,CVE(Common Vulnerabilities and Exposures)是一个非常重要的安全漏洞字典,它为每个安全漏洞提供了唯一的标识符。安全研究人员、开发人员和系统管理员都需要及时了解最新的CVE信息,以便采取相应的防护措施。本文将详细介绍如何使用Python爬虫技术从专业CVE网站抓取漏洞数据,并构建一个完整的CVE信息采集系统。本文详细介绍了如何使用Python爬虫技术从专业CVE网站抓取安全漏洞数据。多种爬虫技术反爬虫策略:User-Agent轮换、代理IP、请求延迟。

2201_76125261的博客 367

Android中的query方法,Android 中數據庫查詢方法 query() 中的 selectionArgs 的用法

Android 中涉及數據庫查詢的地方一般都會有一個 query() 方法,而這些 query 中有大都(全部?)會有一個參數selectionArgs,比如下面這個android.database.sqlite.SQLiteDatabase.query():public Cursor query (String table, String[] columns, String selectio...

weixin_42560067的博客 592

SPAD IMX479规格_分辨率

当然IMX479具备IMX459几乎全部的数字架构,但也有一个缺点就是贵,这个让头部的主机厂有些犹豫,毕竟大家都在集中火力想把车载LiDAR玩进千元机。如果用一片IMX479是不太可能实现千元内部的,当然国产也在奋起直追,特别在前面的几家SPAD厂商都具备开发IMX479的实力,但相对来说落地可能更是当下所考虑的,IMX479的迭代是基于IMX459,小编已经注意到国内有一两家已经在挑战479的规格了,如果国产SPAD没有大规模量产就直接流片IMX479的规格,可能就有点忽略市场的反馈闭环。

致力于lidar应用开发 2417

看完就会!手把手教您如何正确开启飞牛Nas 虚拟机的 IOMMU 硬件直通,让虚拟机的性能飙升!

看完就会!手把手教您如何正确开启飞牛Nas 虚拟机的 IOMMU 硬件直通,让虚拟机的性能飙升!

XiaoqiangClub的博客 1万+

Android 中数据库查询方法query()中的selectionArgs参数解析

Android 中涉及数据库查询的地方一般都会有一个 query() 方法,而这些 query中有大都(全部?)会有一个参数 selectionArgs,比如下面这个android.database.sqlite.SQLiteDatabase.query(): public Cursor query (String table, String[] columns, String select

4780

实战!用Python爬取海关总署进出口贸易数据 —— 从反爬突破到数据可视化全流程指南

{"period": "2026-05", "country": "美国", "import_val": 123.4, "export_val": 567.8, ...}研究员可构建领先指标模型;fig = px.bar(top, x="country", y="total_usd", title="贸易总额TOP10")html.H1("海关进出口数据看板", style={"textAlign": "center"}),"""发起带签名的POST请求(实际为GET + query param)"""

2201_76125261的博客 589

android数据库查询参数意思,Android 中数据库查询方法query()中的selectionArgs参数解析...

Android 中涉及数据库查询的地方一般都会有一个 query() 方法,而这些 query中有大都(全部?)会有一个参数 selectionArgs,比如下面这个android.database.sqlite.SQLiteDatabase.query():public Cursor query (String table, String[] columns, String selection,...

weixin_30762363的博客 749

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Android 中数据库查询方法 query() 中的参数

Android 中涉及数据库查询的地方一般都会有一个 query() 方法,而这些 query 中有大都(全部?)会有一个参数 selectionArgs,比如下面这个 android.database.sqlite.SQLiteDatabase.query(): [java] view plaincopy public Cursor query

bluebell_55的专栏 3107

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Android ContentResolver.query()参数说明

getContentResolver().query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) 参数说明: uri : 需要查询的数据库的表的uri路径 Uri uri = U...

Vincent的博客 1632

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android中SqLite query中用selectionArgs处理字符传值

android中SqLite query中用selectionArgs处理字符传值 Android 中涉及数据库查询的地方一般都会有一个 query() 方法,而这些 query 中有大都(全部?)会有一个参数 selectionArgs,比如下面这个 android.database.sqlite.SQLiteDatabase.query(): [java:nogutter]

常兴E站 3782

Android 中数据库查询方法 query() 中的 select

Android 中涉及数据库查询的地方一般都会有一个 query() 方法,而这些 query 中有大都(全部?)会有一个参数 selectionArgs,比如下面这个 android.database.sqlite.SQLiteDatabase.query(): view plaincopy to clipboardprint? public Cursor query (String t

整理中 905

【转】Android 中数据库查询方法 query() 中的 select

Android 中涉及数据库查询的地方一般都会有一个 query() 方法,而这些 query 中有大都(全部?)会有一个参数 selectionArgs,比如下面这个 android.database.sqlite.SQLiteDatabase.query(): view plaincopy to clipboardprint?public Cursor query (String table...

weixin_30600503的博客 456

android 数据库 limit 1,Android中关于SQLiteDataBase的query()方法参数详解,, limit ? offset? 分页用法...

如果对SQLite关键字用法不是太熟 ,推荐http://www.yiibai.com/sqlite/sqlite_order_by.htmlquery(Stringtable,String []columns, Stringselection,String [] selectionArgs,String groupBy, Stringhaving, StringorderBy,String li...

weixin_35851482的博客 775

Android SQLite 使用 query 查询特定行数据

query()方法: query( table, columns, selection, selectionArgs, groupBy, having, orderBy, limit ); 参数含义: table:表名。 columns:要查询出来的列名。 selection:查询条件子句。 selectionArgs:对应于selection语句中占位符的值。 groupBy:分组。相当于s...

白水的博客 1万+

android原始sqlite中query的复杂用法

android原始sqlite中query的复杂用法

无名大强在前端 2894
上一篇: 使用SQLiteDatabase操作SQLite数据库
下一篇: 如何取得一个 View 在屏幕中上的 Rect
eustoma
博客等级 码龄18年 79粉丝 54原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值