Android SQLite数据库增删改查操作的使用详解

yizhihongxing

Android SQLite数据库是一种轻量级的数据库,适用于在移动开发中存储少量数据。本文将详细讲解Android SQLite数据库的增删改查操作,方便开发者更好地利用SQLite存储数据。

创建数据库

在使用SQLite数据库前,首先需要创建一个数据库。可以通过继承SQLiteOpenHelper类并实现onCreate()方法和onUpgrade()方法来创建和升级数据库。

如下所示是一个创建数据库及表的示例:

public class MyDatabaseHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "myDatabase.db";
    private static final int DATABASE_VERSION = 1;

    private static final String CREATE_TABLE = "CREATE TABLE myTable "
            + "(id INTEGER PRIMARY KEY AUTOINCREMENT, "
            + "name TEXT NOT NULL, "
            + "age INTEGER NOT NULL)";

    public MyDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS myTable");
        onCreate(db);
    }
}

在这个示例中,定义了一个MyDatabaseHelper类来实现创建和升级数据库。创建数据库的语句定义在CREATE_TABLE字符串中,该语句将创建一个名为myTable的表,并包含id、name和age三列。在onCreate()方法中,执行db.execSQL(CREATE_TABLE)来创建表。在onUpgrade()方法中,执行db.execSQL("DROP TABLE IF EXISTS myTable");将删除旧版本的表,并调用onCreate()方法创建新表。

数据库增删改查操作示例

增加数据

可以通过调用SQLiteDatabase的insert()方法向表中新增数据。insert()方法的第一个参数是表名,第二个参数是空列的默认值,第三个参数是待插入的数据。

下面是一个向myTable表中插入数据的示例:

ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("age", 25);
long result = db.insert("myTable", null, values);
if (result == -1) {
    Toast.makeText(context, "添加数据失败", Toast.LENGTH_SHORT).show();
} else {
    Toast.makeText(context, "添加数据成功", Toast.LENGTH_SHORT).show();
}

在这个示例中,创建了一个ContentValues对象,用于存储待插入的数据,put()方法用于设置name和age值。然后调用db.insert("myTable", null, values)将数据插入到myTable表中。如果插入成功,则会返回新增数据的id值;如果插入失败,则会返回-1。

删除数据

可以通过调用SQLiteDatabase的delete()方法来删除表中的数据。delete()方法的第一个参数为表名,第二个参数为删除条件,第三个参数为删除条件的占位符值。

下面是一个从myTable表中删除数据的示例:

String[] whereArgs = {"2"};
int result = db.delete("myTable", "id=?", whereArgs);
if (result == -1) {
    Toast.makeText(context, "删除数据失败", Toast.LENGTH_SHORT).show();
} else {
    Toast.makeText(context, "删除数据成功", Toast.LENGTH_SHORT).show();
}

在这个示例中,创建whereArgs数组,用于存储删除条件的占位符。然后调用db.delete("myTable", "id=?", whereArgs)删除id为2的数据。如果删除成功,则会返回删除的行数;如果删除失败,则会返回-1。

修改数据

可以通过调用SQLiteDatabase的update()方法来修改表中的数据。update()方法的第一个参数为表名,第二个参数为修改的数据,第三个参数为修改条件,第四个参数为修改条件的占位符值。

下面是一个修改myTable表中数据的示例:

ContentValues values = new ContentValues();
values.put("name", "李四");
values.put("age", 30);
String[] whereArgs = {"1"};
int result = db.update("myTable", values, "id=?", whereArgs);
if (result == -1) {
    Toast.makeText(context, "修改数据失败", Toast.LENGTH_SHORT).show();
} else {
    Toast.makeText(context, "修改数据成功", Toast.LENGTH_SHORT).show();
}

在这个示例中,创建一个ContentValues对象来存储将要修改的数据,put()方法用于设置name和age值。然后调用db.update("myTable", values, "id=?", whereArgs)来将id为1的数据修改为新的数据。如果修改成功,则会返回修改的行数;如果修改失败,则会返回-1。

查询数据

可以通过调用SQLiteDatabase的query()方法来查询表中的数据。query()方法的第一个参数为表名,第二个参数为需要查询的列名,第三个参数为查询条件,第四个参数为查询条件的占位符值,第五个参数为查询结果排序方式。

下面是一个将myTable表中的数据查询出来的示例:

Cursor cursor = db.query("myTable", new String[]{"id", "name", "age"},
                         null, null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
    while (cursor.moveToNext()) {
        int id = cursor.getInt(cursor.getColumnIndex("id"));
        String name = cursor.getString(cursor.getColumnIndex("name"));
        int age = cursor.getInt(cursor.getColumnIndex("age"));
        Log.d(TAG, "查询数据成功,id:" + id + ",name:" + name + ",age:" + age);
    }
    cursor.close();
} else {
    Toast.makeText(context, "表中没有数据", Toast.LENGTH_SHORT).show();
}

在这个示例中,调用db.query("myTable", new String[]{"id", "name", "age"}, null, null, null, null, null)来查询所有数据,将查询结果存储在Cursor对象中。然后遍历Cursor对象,通过getColumnIndex()方法和getInt()、getString()方法来获取数据。如果查询到数据,则会将数据打印到log中;如果没有查询到数据,则会提示表中没有数据。

通过以上的示例,我们可以实现Android SQLite数据库的增删改查操作,并且这些操作都是基础操作,可以方便地满足大多数需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android SQLite数据库增删改查操作的使用详解 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • 在Ubuntu使用SQL Server创建Go应用程序的图文教程

    下面是详细讲解如何在Ubuntu系统上使用SQL Server创建Go应用程序的完整攻略,步骤如下: 步骤一:安装 SQL Server 在 Ubuntu 上安装 SQL Server,可以通过 Microsoft 的官方文档进行安装操作: Install SQL Server on Ubuntu 安装完成后,我们可以通过以下命令来验证 SQL Server…

    database 2023年5月22日
    00
  • MYSQL优化之数据表碎片整理详解

    MYSQL优化之数据表碎片整理详解 什么是数据表碎片? 在MySQL中,当数据表中的记录被频繁的删除或更新时,会造成数据表中的物理存储空间产生碎片化,这些碎片所占的空间虽然很小,但是对于系统的性能会产生严重的影响,严重时可能会导致性能下降甚至是整个系统的崩溃。所以,MySQL数据库的管理员需要定期对数据表进行碎片整理。 数据表碎片整理的目的 数据表碎片整理主…

    database 2023年5月19日
    00
  • Oracle存储过程循环语法实例分析

    Oracle存储过程循环语法实例分析 什么是存储过程? 存储过程是一种数据库对象,它包含了一段可执行的SQL代码。存储过程可以接受参数,可以返回结果,并且可以在客户端(例如应用程序)中直接调用。 Oracle存储过程循环语法 Oracle的存储过程循环语法可以使用PL/SQL中的循环结构来实现。常用的循环有FOR循环、WHILE循环和LOOP循环,在不同的情…

    database 2023年5月21日
    00
  • MySQL与Oracle数据类型对应关系(表格形式)

    MySQL与Oracle是两种常见的关系型数据库,它们虽然有着不同的特点和用法,但在数据类型方面却有一些相似之处。下面是MySQL与Oracle数据类型对应关系的表格,其中包括了基本数据类型以及部分特殊数据类型的对应关系。 MySQL数据类型 Oracle数据类型 INT NUMBER VARCHAR VARCHAR2 TEXT CLOB DATE DATE…

    database 2023年5月21日
    00
  • MySQL explain 和 profiling 详解

    MySQL explain 和 profiling 详解 mysql explain MySQL 的 EXPLAIN 是一个用于查询优化的工具,它可以显示 MySQL 数据库如何执行查询。它返回一组关于查询执行计划的信息,包括用到的索引,表的连接顺序以及 MySQL 使用的查询类型。下面是 EXPLAIN 返回的列及其含义: id id:查询中每个 SELE…

    MySQL 2023年4月8日
    00
  • Redis配置项汇总

    bind绑定的IP地址,默认127.0.0.1,表示只能本机访问,使用0.0.0.0表示允许所有IP访问,但是可能存在安全问题。示例: bind 0.0.0.0 portRedis监听的端口,默认6379,可以根据自己的需要修改。示例: port 6380 daemonize是否以守护进程方式运行Redis,默认no,不守护进程运行。示例: daemoniz…

    Redis 2023年4月2日
    00
  • mysql双机热备实现方案【可测试】

    1. 简介 MySQL是一种广泛使用的关系型数据库管理系统,常常会用在大型网站中。其中,MySQL的双机热备方案可以保证主数据库出故障后从数据库能够立即接替主数据库的工作,从而保证站点的高可用性和数据的安全性。本文将在实际测试中,介绍基于MySQL的双机热备实现方案。 2. 环境准备 本文采用的测试环境如下: 主机:CentOS 7.9.2009(64-bi…

    database 2023年5月21日
    00
  • SQL Server SQL高级查询语句小结

    SQL Server SQL高级查询语句小结 1. 联合查询 联合查询(UNION)是将两个或多个 SELECT 语句的结果组合成一个结果集的操作。下面是一个简单的联合查询示例,将两个表的数据合并在一起: SELECT name FROM table1 UNION SELECT name FROM table2 2. 子查询 子查询是一个 SELECT 语句…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部