`
啵啵丹
  • 浏览: 8001 次
社区版块
存档分类
最新评论

Android 使用SQLiteDatabase操作SQLite数据库(一)

 
阅读更多

转自http://www.eoeandroid.com/forum.php?mod=viewthread&tid=83427

此博文解决了解决了我的一个疑问 一直不知道为什么非要用占位符 原来是单引号的缘故

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

execSQL()方法的使用例子:

java代码:

  1. SQLiteDatabase db = ....;
  2. db.execSQL("insert into person(name, age) values('安桌', 4)");
  3. db.close();
复制代码

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

使用例子如下:

java代码:

  1. SQLiteDatabase db = ....;
  2. db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"安桌", 4});
  3. db.close();
复制代码

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

SQLiteDatabase的rawQuery() 用于执行select语句,使用例子如下:

java代码:

  1. SQLiteDatabase db = ....;
  2. Cursor cursor = db.rawQuery(“select * from person”, null);
  3. while (cursor.moveToNext()) {
  4. int personid = cursor.getInt(0); //获取第一列的值,第一列的索引从0开始
  5. String name = cursor.getString(1);//获取第二列的值
  6. int age = cursor.getInt(2);//获取第三列的值
  7. }
  8. cursor.close();
  9. db.close();
复制代码

rawQuery()方法的第一个参数为select语句;第二个参数为select语句中占位符参数的值,如果select语句没有使用占位符,该参数可以设置为null。带占位符参数的select语句使用例子如下:

java代码:
  1. Cursor cursor = db.rawQuery("select * from person where name like ? and age=?", new String[]{"%传智%", "4"});

复制代码

Cursor是结果集游标,用于对结果集进行随机访问,如果大家熟悉jdbc, 其实Cursor与JDBC中的ResultSet作用很相似。使用moveToNext()方法可以将游标从当前行移动到下一行,如果已经移过了结果集的最后一行,返回结果为false,否则为true。另外Cursor 还有常用的moveToPrevious()方法(用于将游标从当前行移动到上一行,如果已经移过了结果集的第一行,返回值为false,否则为true )、moveToFirst()方法(用于将游标移动到结果集的第一行,如果结果集为空,返回值为false,否则为true )和moveToLast()方法(用于将游标移动到结果集的最后一行,如果结果集为空,返回值为false,否则为true )。
分享到:
评论

相关推荐

    Android开发中的SQLite数据库的增删改查工具类

    在Android开发中,SQLite数据库是应用进行本地数据...综上所述,SQLiteManager和DBSOpenHelper是Android开发中实现SQLite数据库操作的核心工具,它们结合使用能有效管理和操作本地数据,满足各种应用的本地存储需求。

    Android操作SQLite数据库Demo

    这个"Android操作SQLite数据库Demo"将展示如何在Android环境中有效地利用SQLite进行数据管理。以下是一些关键知识点: 1. **SQLiteOpenHelper**: Android提供了`SQLiteOpenHelper`类来帮助我们管理SQLite数据库,...

    Android使用SharedPreferences和SQLite数据库实现数据存储

    本文将详细探讨如何使用SharedPreferences和SQLite数据库这两种常见的Android数据存储机制。 首先,我们来看SharedPreferences。SharedPreferences提供了一种轻量级的数据存储方式,适用于保存简单的键值对数据,如...

    Android Studio SQLite数据库使用

    在本文中,我们将介绍如何使用SQLite数据库在Android Studio中,并详细解释SQLiteOpenHelper和SQLiteDatabase的使用方法。 一、SQLiteOpenHelper的使用 SQLiteOpenHelper是一个抽象类,用于创建和管理数据库。要...

    android 操作sqlite数据库源码

    下面我们将深入探讨如何使用Android操作SQLite数据库,并基于提供的"android 操作sqlite数据库源码"进行讲解。 1. **SQLiteOpenHelper**: `DataBaseHelper`这个类名暗示它是对SQLiteOpenHelper的一个实现。...

    android 的sqlite数据库加密实现

    在Android应用开发中,SQLite是一个...通过以上介绍,我们了解了在Android中使用SQLCipher实现SQLite数据库加密的重要性、方法以及注意事项。在实际项目中,可以根据需求选择适合的加密策略,确保应用的数据安全性。

    Android数据库SQLite详解

    - **加密**: 可以使用第三方库对SQLite数据库进行加密,增强数据安全性。 - **索引**: 为经常用于查询的字段创建索引,提高查询速度。 - **批量操作**: 避免频繁的单条数据操作,尽量使用批处理来提升性能。 - **...

    Android操作SQLite数据库的代码例子

    这些代码片段展示了如何在Android应用中使用SQLite数据库进行基本操作。你可以根据需要扩展这些功能,例如添加事务处理、索引、查询优化等。记得在每次操作完成后关闭数据库连接,以避免资源浪费。 在提供的"ExmSQL...

    Android源码——数据库SQLite.zip

    这个压缩包文件"Android源码——数据库SQLite.zip"可能包含了关于Android中SQLite数据库的源码分析、使用示例以及相关的图像资源,如1-120912223R80-L.png,可能用于解释或展示SQLite在Android中的工作原理。...

    android操作数据库Sqlite源代码

    以上是基于Android操作SQLite数据库的一些核心概念和源代码组织方式。实际开发中,还需要考虑数据同步、数据备份、数据加密等高级功能,以及性能优化,如批量插入、使用索引等。学习并理解这些知识点,将有助于你更...

    利用Android自有api操作sqlite数据库

    SQLite数据库对于那些不熟悉SQL语句的程序员来说,仍然是非常友好的,因为它通过Android SDK提供的API简化了数据库的操作。本文将详细介绍如何利用Android自带的API来操作SQLite数据库。 一、创建SQLite数据库 ...

    Android使用SQLite数据库进行增删改查详细案例

    本案例将详细介绍如何在Android应用中使用SQLite进行增(Create)、删(Delete)、改(Update)和查(Read)操作。 1. **创建SQLite数据库** 在Android中,我们需要创建一个继承自`SQLiteOpenHelper`的类,这个类...

    Android操作sqlite数据库之Grid显示图片

    本实例将介绍如何在Android应用中操作SQLite数据库,并以Grid形式展示图片。以下是对该主题的详细讲解: 首先,我们需要创建一个SQLite数据库。在Android中,我们通常创建一个`SQLiteOpenHelper`的子类,如`...

    Android数据库SQLiteDataBase的使用

    因为数据库的操作在开发中的重要性是不言而喻的,所以,在数据库这一方面下了很大的功夫,终于掌握了基本的操作,包括建表和删除,对数据库的操作,“增删改查”基本操作,而且用了封装性来实现,是学习数据库的一个...

    Android SQLite数据库操作Demo

    在这个"Android SQLite数据库操作Demo"中,我们将探讨如何在Android应用中创建、查询、更新和删除SQLite数据库的数据。 1. **数据库初始化** 在Android中,我们通常通过扩展SQLiteOpenHelper类来初始化SQLite...

    Android代码-连接SQLite数据库源码.zip

    总的来说,"连接SQLite数据库源码.zip"文件应该包含了一个完整的Android应用示例,展示了如何使用`SQLiteOpenHelper`来创建数据库,使用DAO进行数据操作,以及如何处理数据库的生命周期和版本管理。通过分析这个源码...

    Android-chapter05 SQLite数据库.ppt

    在Android中,SQLite数据库的使用主要包括以下几个方面: **SQLite操作API**: Android SDK提供了一系列的类和接口来操作数据库,如`SQLiteOpenHelper`、`SQLiteDatabase`等。`SQLiteOpenHelper`用于创建和升级...

    Android平台下通用SQLite数据库模型的设计与实现.pdf

    在 Android 平台下使用SQLite 数据库,通常通过 SQLiteOpenHelper 类来创建表格,生成数据库对象,然后通过 getReadableDatabase 方法获取 SQLiteDatabase 对象,最后通过 rawQuery 方法获取游标 Cursor 对象。...

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

    这篇实验报告主要涉及了在Android平台上使用SQLite数据库进行文件操作和数据管理的相关知识。以下是详细的解释: 1. **SQLite数据库**:SQLite是一个轻量级的、嵌入式的关系型数据库,广泛应用于移动设备如Android...

    android sqlite数据库 增加、删除、修改,查询系统功能实现

    首先,我们需要在Android项目中创建一个SQLite数据库。这通常通过创建一个SQLiteOpenHelper的子类来完成。SQLiteOpenHelper负责创建和升级数据库,同时提供了getWritableDatabase()和getReadableDatabase()方法来...

Global site tag (gtag.js) - Google Analytics