`
sjl599
  • 浏览: 17316 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

使用嵌入式关系型SQLite数据库存储数据

阅读更多
除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。

在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型虽然只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。 SQLite最大的特点是你可以保存任何类型的数据到任何字段中,无论这列声明的数据类型是什么。例如:可以在Integer字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数,当向这种字段中保存除整数以外的数据时,将会产生错误。 另外, SQLite 在解析CREATE TABLE 语句时,会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息,如下面语句会忽略 name字段的类型信息:

CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))

SQLite可以解析大部分标准SQL语句,如:

查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order by 排序子句

如:select * from person

        select * from person order by id desc

        select name from person group by name having count(*)>1

分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录

select * from Account limit 5 offset 3 或者 select * from Account limit 3,5

插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person(name, age) values(‘小明’,3)

更新语句:update 表名 set 字段名=值 where 条件子句。如:update person set name=‘小明‘ where id=10

删除语句:delete from 表名 where 条件子句。如:delete from person  where id=10

Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQuery()方法。 execSQL()方法可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句; rawQuery()方法可以执行select语句。

execSQL()方法的使用例子:

SQLiteDatabase db = ....;

db.execSQL("insert into person(name, age) values('小孩', 4)");

db.close();

执行上面SQL语句会往person表中添加进一条记录,在实际应用中,语句中的“小孩”这些参数值应该由用户输入界面提供,如果把用户输入的内容原样组拼到上面的insert语句,当用户输入的内容含有单引号时,组拼出来的SQL语句就会存在语法错误。要解决这个问题需要对单引号进行转义,也就是把单引号转换成两个单引号。有些时候用户往往还会输入像“ & ”这些特殊SQL符号,为保证组拼好的SQL语句语法正确,必须对SQL语句中的这些特殊SQL符号都进行转义,显然,对每条SQL语句都做这样的处理工作是比较烦琐的。 SQLiteDatabase类提供了一个重载后的execSQL(String sql, Object[] bindArgs)方法,使用这个方法可以解决前面提到的问题,因为这个方法支持使用占位符参数(?)。使用例子如下:

SQLiteDatabase db = ....;

db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"小明", 4});

db.close();

execSQL(String sql, Object[] bindArgs)方法的第一个参数为SQL语句,第二个参数为SQL语句中占位符参数的值,参数值在数组中的顺序要和占位符的位置对应。
分享到:
评论

相关推荐

    Android编程操作嵌入式关系型SQLite数据库实例详解

    本文实例分析了Android编程操作嵌入式关系型SQLite数据库的方法。分享给大家供大家参考,具体如下: SQLite特点 1.Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型 ...

    Linux下嵌入式系统中SQlite数据库的应用.pdf

    SQLite作为一种轻量级的关系型数据库管理系统,在嵌入式环境中展现出了独特的优势。本文将基于提供的文件信息,深入探讨在Linux下的嵌入式系统中如何有效应用SQLite数据库。 #### SQLite数据库简介 SQLite是一种...

    嵌入式关系型数据库sqlite源码

    SQLite是一款开源、轻量级的嵌入式关系型数据库,其源码的分析与学习对于理解数据库系统工作原理以及如何优化数据库性能具有重要的价值。SQLite的设计目标是能够在各种嵌入式设备上运行,无需单独的服务器进程,且...

    嵌入式Linux及SQLite数据库在智能监控中的应用研究.pdf

    在设计和实现过程中,可能遇到的难点包括如何高效地处理和存储实时数据,优化SQLite数据库性能以适应嵌入式环境,以及如何构建稳定可靠的嵌入式Web服务器以确保远程访问的顺畅。此外,为了确保数据安全和隐私,还...

    uniAPP使用sqlite数据库demo

    总结,这个“uniAPP使用sqlite数据库demo”项目是学习和实践如何在uniAPP中利用SQLite存储和管理本地数据的宝贵资源。通过深入理解上述知识点,开发者能够有效地在uniAPP应用中构建自己的数据库管理系统,满足各种...

    SQLite数据库文件自收缩_sqlite3_

    SQLite是一款轻量级的、开源的、嵌入式的关系型数据库管理系统,广泛应用于移动设备、桌面应用以及服务器环境。在SQLite中,数据库文件是数据库的所有数据和元数据的存储容器。当数据库中的数据被删除或者更新后,...

    sqlite数据库存取数据类

    SQLite数据库是一种轻量级的关系型数据库管理系统,它无需单独安装,可以直接嵌入到应用程序中,因此在客户端本地存储数据时非常方便。SQLite以其小巧、快速、稳定和跨平台的特性,被广泛应用于移动应用、桌面应用...

    sqlite数据库与表格展示数据

    SQLite是一个轻量级的、开源的、嵌入式的关系型数据库,广泛应用于移动应用开发,如Android。在Android系统中,SQLite是默认的数据存储解决方案,它允许开发者在本地存储结构化数据,无需依赖服务器。 首先,我们要...

    SQLite:嵌入式关系型数据库引擎的简介和应用.pdf

    SQLite是一种流行的关系型数据库管理系统,尤其适用于嵌入式系统、移动应用和桌面软件。它的主要特点包括无需配置、基于磁盘文件的存储方式、对标准SQL语法的支持以及ACID事务特性,这使得SQLite成为轻量级数据库...

    SQLite关系型数据库的使用

    ### SQLite关系型数据库的使用 #### 一、概述 SQLite是一种轻量级的数据库系统,非常适合于嵌入式系统及移动应用开发,如iOS应用程序中的数据缓存。它不需要独立的服务器进程,而是直接集成到应用程序中。由于其...

    SQLite教程(一):SQLite数据库介绍

     SQLite是目前最流行的开源嵌入式数据库,和很多其他嵌入式存储引擎相比(NoSQL),如BerkeleyDB、MemBASE等,SQLite可以很好的支持关系型数据库所具备的一些基本特征,如标准SQL语法、事务、数据表和索引等。...

    java创建使用SQLite数据库以及SQLiteDeveloper工具.rar

    SQLite数据库非常适合于移动设备、嵌入式系统或作为小型项目的数据存储解决方案。本资源提供了Java操作SQLite数据库的代码示例,以及SQLiteDeveloper工具,帮助开发者更方便地查看和管理SQLite数据库。 首先,我们...

    嵌入式数据库SQLite的原理与应用

    SQLite是一种开源、零配置的关系型数据库管理系统,特别适合于嵌入式系统。其主要特点和技术特性包括: 1. **零配置**:SQLite不需要复杂的安装过程,也不需要额外的进程管理和配置,可以直接使用。 2. **轻量级**...

    sqlite嵌入式移植

    sqlite 是一种开源的关系型数据库管理系统,广泛应用于嵌入式系统、移动设备和桌面应用程序中。以下是 sqlite 嵌入式移植的相关知识点: 1. 嵌入式数据库的应用探索:嵌入式数据库是指在嵌入式系统中使用的数据库...

    sqlite数据库编辑器.rar

    SQLite是一款开源、轻量级的嵌入式关系型数据库,它不需要单独的服务器进程,可以直接在应用程序中使用。SQLite数据库编辑器则是用于管理和操作SQLite数据库的工具,它可以帮助用户直观地查看、创建、修改和查询...

    vs2017 xamarin使用本地sqlite数据库源码

    【标题】:“vs2017 xamarin使用本地sqlite数据库源码”揭示了如何在Visual Studio 2017(简称VS2017)中利用Xamarin开发Android应用,并集成SQLite作为本地数据库进行数据存储。Xamarin是一款强大的跨平台移动应用...

    JavaScript操作SQLite数据库Demo

    为了验证数据是否正确存储,你可以使用SQLiteStudio等工具,将JavaScript生成的SQLite数据库文件导出并进行查看。SQLiteStudio是一款直观的SQLite数据库管理工具,它提供了GUI界面,方便进行数据查看、编辑和管理。 ...

    Android-实验报告-Sqlite-数据库操作.docx

    1. **SQLite数据库**:SQLite是一个轻量级的、嵌入式的关系型数据库,广泛应用于移动设备如Android手机中。在Android系统中,SQLite提供了一种持久化存储数据的方式,特别适合小型应用的数据存储需求。在实验中,`...

Global site tag (gtag.js) - Google Analytics