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

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日

相关文章

  • win2008 服务器安全设置部署文档(推荐)

    Win2008 服务器安全设置部署文档(推荐):完整攻略 简介 在服务器部署的过程中,安全设置非常重要。为了更好地保护服务器的安全性和稳定性,我们需要进行一系列的安全设置。本文将介绍一份Win2008服务器安全设置部署文档推荐,并提供完整的攻略,以帮助用户进行安全设置。 文档下载 该文档可以从官方网站进行下载,下载地址为: http://www.micros…

    database 2023年5月22日
    00
  • redis学习之——redis.conf配置(基本)文件学习

    # Redis configuration file example # Note on units: when memory size is needed, it is possible to specify //1  配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit   // 2  对大小写不敏感 # it in the usu…

    Redis 2023年4月16日
    00
  • 用node和express连接mysql实现登录注册的实现代码

    首先我们需要确保已经安装好Node和MySQL,并且已经创建好了相应的数据库和数据表。 创建Express工程 首先,我们需要创建一个新的Express应用程序,可以通过执行以下命令进行创建: $ npm install -g express-generator $ express myapp $ cd myapp $ npm install 这样就可以创建…

    database 2023年5月21日
    00
  • MySQL服务自动停止的解决方法

    以下是详细的MySQL服务自动停止的解决方法攻略: 1. 检查MySQL服务状态 在遇到MySQL服务自动停止的情况时,首先需要检查MySQL服务的状态,以确保是否处于运行状态。您可以使用以下命令来检查MySql服务是否正在运行: sudo systemctl status mysql 如果MySQL服务正在运行,您将看到类似于以下输出: ● mysql.s…

    database 2023年5月21日
    00
  • 分析JVM的组成结构

    分析JVM的组成结构可以从以下三个方面来入手: 类加载子系统 运行时数据区 执行引擎 一、类加载子系统 在Java程序中,所有的类都需要被加载到内存中才能被执行。类加载子系统就是负责将类加载到JVM内存中的模块。 类加载子系统主要由以下三部分组成: 加载(Loading):加载就是将class文件读取到内存中,并为之创建一个java.lang.Class对象…

    database 2023年5月21日
    00
  • MySQL数据库安全设置与注意事项小结

    MySQL数据库安全设置与注意事项小结 MySQL是目前互联网上最为流行的开源数据库之一,它的安全性设置与注意事项非常重要,本文将为大家介绍MySQL数据库安全设置与注意事项,帮助大家保证数据的安全性。 1. 减少不必要的权限 MySQL中的用户权限可控制用户对数据库、表和列的访问级别。建议在生产环境中使用具有足够权限的专用用户。管理员不应向每个用户授予超出…

    database 2023年5月19日
    00
  • Ubuntu下完美实现迁移MySQL数据库位置

    下面是Ubuntu下完美实现迁移MySQL数据库位置的完整攻略: 1. 备份 MySQL 数据库 在进行迁移之前,务必要先备份 MySQL 数据库,以防数据遗失。可使用以下命令来备份数据库: mysqldump -u root -p –databases dbname > database.sql 其中,root 是数据库的用户名,dbname 是需…

    database 2023年5月22日
    00
  • Couchbase和Redis的区别

    Couchbase和Redis都是目前比较流行的NoSQL数据库,两者有相似之处,也有一些不同点。 相似之处 Couchbase和Redis都是内存型数据库,它们的读写速度非常快,适合对数据的操作需要低延迟的场景。同时,它们也都具有水平扩展的能力,可以通过增加节点来增加数据库的性能和容量。另外,它们都支持分布式的架构,数据可以分布在不同的节点上存储,提高了数…

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