SqLite的query方法,参数args中不能含null值

Flask+SQLite多对多关系实战:从中间表到关联模型 多对多关系是关系型数据库中最基础也最易出错的核心范式,其本质是通过中间表实现两个实体间的双向映射。在SQLite环境下,由于外键约束默认关闭、缺乏自动级联管理,必须手动激活PRAGMA foreign_keys并合理设计关联结构。技术价值在于保障数据一致性、支持高效JOIN查询与灵活扩展——如添加收藏时间、主作者标识等业务字段。典型应用场景包括图书-作者、用户-标签、权限-角色等Web系统建模。本文聚焦Flask-SQLAlchemy在SQLite中的落地实践,详解db.Table与db.Model两种中间 阅读详情
Android 2.3.3 
Eclipse Version: 3.7.0 
LogCat  


LogCat  报错信息:

03-13 11:37:27.419: ERROR/AndroidRuntime(844): java.lang.IllegalArgumentException: the bind value at index 2 is null
03-13 11:37:27.419: ERROR/AndroidRuntime(844): at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:237)
03-13 11:37:27.419: ERROR/AndroidRuntime(844): at android.database.sqlite.SQLiteQuery.bindString(SQLiteQuery.java:185)
03-13 11:37:27.419: ERROR/AndroidRuntime(844): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:48)
03-13 11:37:27.419: ERROR/AndroidRuntime(844): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1356)
03-13 11:37:27.419: ERROR/AndroidRuntime(844): at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1235)
03-13 11:37:27.419: ERROR/AndroidRuntime(844): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1189)
03-13 11:37:27.419: ERROR/AndroidRuntime(844): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1271)
03-13 11:37:27.419: ERROR/AndroidRuntime(844): at com.taobao.htc.db.RecordDBHelper.query(RecordDBHelper.java:53)
03-13 11:37:27.419: ERROR/AndroidRuntime(844): at com.taobao.htc.manage.RecordDBopt.get(RecordDBopt.java:80)
03-13 11:37:27.419: ERROR/AndroidRuntime(844): at com.taobao.htc.Play.savePlayCount(Play.java:775)
03-13 11:37:27.419: ERROR/AndroidRuntime(844): at com.taobao.htc.Play$5.run(Play.java:369)
03-13 11:37:27.419: ERROR/AndroidRuntime(844): at java.util.Timer$TimerImpl.run(Timer.java:284)


发生错误原因分析:

检查相关代码,发现

传入savePlayCount的String值programid为null,在传入之前和传入后均未作判断

	public void savePlayCount(String programid, int count) {
	……
	}
而programid最终作为参数args这个数组中的一个值,用于数据库查询 
	Cursor cur = db.query(TBL_NAME, null, where, args, null, null, order);


由于args这个String数组中的String有null值,报错

 

解决办法:

在传入programid前或之后对其值作判断

if (programid != null) {
	……
}


 PS:args这个String数组中不能有null值

Java集成SQLite实战:从驱动选型到性能调优的完整指南 在Java应用开发中,数据库选型是架构设计的关键环节。JDBC作为Java连接数据库的标准API,为开发者提供了统一的操作接口。SQLite作为一种轻量级、嵌入式的关系型数据库,以其零配置、无服务器和单文件存储的特性,在特定场景下展现出独特的技术价值。它尤其适用于桌面应用、移动端原型、单元测试以及需要离线运行的嵌入式场景,能够有效简化部署和降低资源开销。通过选择合适的JDBC驱动并优化连接参数,可以显著提升数据操作的效率和并发处理能力。本文聚焦于Java项目中SQLite的集成与实践,详细解析了Xerial 阅读详情

相关推荐

Linux命令行电子词典开发:从离线词库解析到SQLite缓存实战

在Linux环境下,命令行工具与本地应用开发是系统编程与自动化运维的核心技能。其原理在于通过组合系统调用、进程管理、文件IO与网络通信等底层机制,构建高效、可定制的实用程序。这类技术的价值在于能深度契合开发者的工作流,提升效率,并强化对系统本身的理解。典型的应用场景包括服务器管理、嵌入式开发以及日常自动化任务。本文聚焦于一个具体实践:开发一个功能完整的命令行电子词典。该项目综合运用了离线词库解析(如StarDict格式)、SQLite本地缓存、网络API集成以及ncurses终端界面开发,展示了如何将分散的

virusswb的专栏 400

the bind value at index 2 is null

Greendao 条件查询数据报错 the bind value at index 2 is null 导致报错的方法: xxxDao.queryBuilder().where(xxxDao.Properties.XXX.eq(value).unique() xxxDao.queryBuilder().where(xxxDao.Properties.XXX.notEq(value).unique...

103style 3581

Java项目集成SQLite实战:从环境搭建到性能调优全解析

嵌入式数据库作为轻量级数据存储解决方案,以其零配置、无服务器和单文件部署的特性,在特定场景下展现出独特的工程价值。其核心原理在于将数据库引擎直接嵌入到应用程序进程中,通过文件系统进行数据持久化,从而避免了独立数据库服务的部署与维护开销。这一技术特性使其在资源受限、追求部署简便性的环境中具有显著优势,例如桌面客户端应用、边缘计算设备以及快速原型开发。通过JDBC驱动,Java开发者能够便捷地操作SQLite数据库,实现标准的数据定义与操作。在实际应用中,合理配置PRAGMA参数(如开启WAL模式以提升并发性能

weixin_30628801的博客 371

使用lombok时@JsonIgnore影响传入参数致使其为null

使用lombok时@JsonIgnore影响传入参数为null

mango46的博客 1273

SQLite+向量存储构建AI代理记忆系统

AI代理的记忆能力是实现连续对话与任务协同的基础技术概念,其核心在于结构化数据管理与语义化信息检索的协同。原理上需兼顾ACID事务保障的确定性存储与向量相似度匹配的语义理解能力,技术价值体现在轻量可控、本地部署、隐私合规与可审计性。典型应用场景包括会话上下文保持、跨轮次任务状态追踪及用户偏好沉淀。本文聚焦SQLite与向量存储的分层协同设计,通过将原始记忆存于SQLite、反思摘要向量化,实现高效精准的‘语义路标+详细地图’双模检索机制。

weixin_30918633的博客 326

python代码爬取大众点评评论!直接copy就可以运行!

python代码爬取大众点评评论!直接copy就可以运行!

QiuQiRuQin的博客 1万+

SQLite

1.为什么要用SQLite SQLite占用资源非常低,是非常轻量级的数据库 2.什么是SQLite SQLite是Android系统提供的数据存储方式之一 3.如何创建数据库和数据表 public class MySql extends SQLiteOpenHelper{ private String sql="create table student(" + ...

qq_27759599的博客 280

告别手动改图!用Python+PyWin32驱动SolidWorks,实现参数自动化修改(保姆级避坑指南)

本文详细介绍了如何利用Python和PyWin32驱动SolidWorks实现参数自动化修改,提供从环境配置到API连接的工业级解决方案。通过实战案例和避坑指南,帮助工程师高效搭建自动化脚本工作流,显著提升设计效率。

weixin_30614109的博客 741

Android Sqlite的query方法参数详解

最常用的7参query如下所示: query(table,columns, selection, selectionArgs, groupBy, having, orderBy, limit) 该方法各参数含义如下: table:表名。相当于select语句from关键字后面的部分。如果是多表联合查询,可以用逗号将两个表名分开。 columns:要查询出来的列名。格式为:new String[] {”列名“,”列名"}。相当于select语句select关键字后面的部分,当填入null或者new .

qq_52825021的博客 5100

TSMaster实战:如何用LIN总线唤醒你的汽车电子系统(附波形分析)

本文通过TSMaster工具实战解析LIN总线唤醒机制。详细介绍了LIN网络唤醒的协议要求、时序参数计算,并演示了如何在TSMaster中配置唤醒信号、捕获分析波形,以及验证休眠流程。文章结合常见问题排查,为汽车电子工程师提供了从理论到实践的完整调试指南。

weixin_28308325的博客 459

昇腾AI处理器Ascend C编程:从C/C++基础到高性能算子开发实战

异构计算是提升AI算力效率的核心技术,通过在CPU之外引入专用处理器(如GPU、NPU)协同工作,实现大规模并行计算。其原理在于将计算密集型任务卸载到专用硬件,利用其高并行架构加速处理。技术价值在于突破传统CPU的算力瓶颈,为深度学习训练与推理提供强大动力,广泛应用于模型部署、科学计算和高性能计算场景。本文聚焦昇腾AI处理器的原生编程语言Ascend C,它基于C/C++标准扩展,通过显式内存管理和任务并行模型,充分发挥达芬奇架构中Cube与Vector单元的性能。针对CANN算子开发,文章详解了从环境搭建

weixin_34411563的博客 365

SQLite报错:java.lang.IllegalArgumentException: the bind value at index 1 is null

报错的代码: Cursor c = db.rawQuery("select * from "+TAB_NAME+" where "+FIELD_LIVE_ID+" = ?",new String[]{liveId}); 错误分析: sql语句中第一个问号对应的value为null,导致语句报错 解决办法: 1、在查询之前判断参数为空; 2、使用完整的sql语句 String sql="select * from "+TAB_NAME+" where "+FIELD_LIVE_ID+"="+.

liu_xiong的博客 2324

西门子828D/840DSL数控机床产量数据采集实战:一个C#程序员的踩坑与填坑记录

本文详细记录了C#程序员在西门子828D/840DSL数控机床产量数据采集实战中的经验与教训。从硬件连接到软件配置,再到数据读取与异常处理,文章分享了工业现场编程的特殊挑战和解决方案,特别是针对数控系统的TCP/IP通信、PLC变量地址映射及数据解析等关键技术点。

weixin_42741930的博客 594

SQLite的query方法,注意检查参数args中是否含null值

Android 2.3.3 Eclipse Version: 3.7.0 LogCat  LogCat  报错信息: 03-13 10:25:37.163: ERROR/AndroidRuntime(4166): java.lang.IllegalArgumentException: the bind value at index 2 is null 03-13 10:...

DebugLog的专栏 579

IntelliJ IDEA 中git使用说明书

IntelliJ IDEA 中git使用说明书

junyang2012的博客 5389

SpringBoot项目整合Knife4j接口文档

写满接口信息的文档,每条接口包括:请求参数,响应参数,接口地址,接口名称,请求类型,请求格式,备注。

诨号无敌鸭的博客 1017

SQLite3

注意:安装sqlite3和安装sqlite3依赖库不是一个概念,安装sqlite3依赖库,需要执行。

qq_44672308的博客 657

华为OD机试真题 新系统 【社交网络相同爱好好友查询】

华为od机试真题 新系统【社交网络相同爱好好友查询】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为od机试真题【社交网络相同爱好好友查询】多语言题解实现。

qq_45776114的博客 1336

MAS 激活脚本使用指南:免费实现 Windows 与 Office 永久激活的 4 种方法

MAS 激活脚本是一款免费开源、免安装的 Windows 激活与 Office 激活工具,内置 HWID、Ohook、TSforge、Online KMS 四种方式,可覆盖系统到办公套件的永久激活场景。关于 MAS 激活脚本怎么用,本文按"先选方案、再上手、最后排查"的顺序来讲,全程不需要安装任何软件。 ## 先选方案:4 种激活方式按需求对号入座 4 种方式各有分工,对照自己的需求选就行:

gitblog_00848的博客 218

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

SQLite显示表命令原理与实战:从.tables到sqlite_master元数据解析

SQLite中‘显示表’并非简单命令,而是理解其元数据架构的入口。核心原理在于系统表sqlite_master——它存储所有表、视图、索引的类型、名称、创建SQL等真实元信息,是数据库结构的唯一真相源。区别于MySQL的SHOW TABLES,SQLite通过.tables(CLI快捷方式)、PRAGMA table_list(多schema增强视图)及直接查询sqlite_master实现表枚举,三者本质统一但适用场景不同:.tables适合人工快速浏览,而生产级脚本和跨schema管理必须依赖sqlit

weixin_30265103的博客 294

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Android客户端开发—数据库SQLite基本语句

之前接触过一点MySQL数据库方面的知识,现在在学习Android软件开发过程中发现SQLite语句与MySQL的语句还是有部分不同,SQLite中的命令不算太多,可以在adb shell中进入App的data文件,之后执行sqite3 数据库名,进入到sql命令行界面 查询SQLite的基本命令,输入".help"得到命令与句列表: sqlite> .help .backup ?...

编码人生 956

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

MCP协议实战:用Python构建AI数据库查询工具,让Claude直接操作SQLite

在AI应用开发中,如何让大语言模型安全、高效地访问和操作外部数据与系统,是提升其实际生产力的关键挑战。Model Context Protocol(MCP)作为一种标准化协议,定义了AI模型与外部工具(如数据库、API)之间结构化通信的规则,其核心价值在于为AI能力提供了安全、可控的扩展边界。通过构建MCP Server,开发者可以将内部资源(如数据库Schema)和操作(如SQL查询)封装成标准的Resources和Tools,使AI助手(Client)能够基于实时上下文理解用户意图并执行安全操作,从而将

653

Duix.Avatar数字人项目SQLite3数据类型绑定错误的深度技术解析与优化实践

在基于Duix.Avatar开源数字人项目进行二次开发或定制化部署时,开发者可能会遇到一个典型的数据库操作错误:"SQLite3 can only bind numbers, strings, bigints, buffers, and null"。这个错误通常发生在尝试向SQLite数据库插入或更新数据时,传入了不受支持的数据类型。作为一款支持本地部署的AI数字人视频生成工具,Duix.Avat

gitblog_00070的博客 387

Flask入门:从HTTP协议到SQLite部署的全栈实践

Web应用开发本质是HTTP请求与响应的闭环处理,其底层依赖WSGI协议、Python运行时及操作系统进程协同。Flask作为轻量级Python Web框架,以极简设计暴露核心概念——路由绑定、请求上下文、模板渲染与数据库交互,成为理解Web工作原理的理想入口。它不封装细节,使开发者直面HTTP生命周期、SQLite嵌入式存储、Bootstrap前端集成及gunicorn+nginx生产部署等关键环节。本文围绕flask入门和sqlite实战展开,覆盖从'Hello World'到可上线图书管理系统的完整路

cong84596496的博客 369

SQLite本地优先架构在健康追踪应用中的实践与优化

数据持久化是移动应用开发的核心基础,它决定了应用数据的存储方式和访问效率。SQLite作为轻量级嵌入式数据库,采用无服务器架构和单一磁盘文件设计,通过ACID事务保证数据一致性。这种技术方案特别适合需要离线优先、快速响应的应用场景,如个人健康追踪和健身管理。在本地优先架构中,SQLite确保用户数据完全存储在设备本地,无需网络连接即可流畅使用,同时通过合理的数据模型设计和索引优化提升查询性能。以Kilo健身追踪应用为例,基于SQLite的体重记录、运动管理和营养追踪模块展示了如何实现高效的数据操作与统计分析

weixin_30924239的博客 342
上一篇: ScrollView不能包含多个子项,ScrollView can host only one direct child
下一篇: SQLite的query方法,注意检查参数args中是否含null值
DebugLog
博客等级 码龄15年 10粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值