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日

相关文章

  • redis集群结构图

    在JAVA编程时,使用哨兵池获取jedis来进行数据的操作,哨兵对对集群进行监视,当主节点宕掉时,会自动将子一个子节点升级为主节点,原来的主节点上线时会自动变为从节点,主节点的变化,对于使用哨兵池方式操作redis时,没有任何影响。 redis使用方式: 1、管道技术:类似与MySQL进行批量插入时,拼接长SQL一样,一批请求,一次响应,减少处理时间; 2、…

    Redis 2023年4月13日
    00
  • 使用MYSQL TIMESTAMP字段进行时间加减运算问题

    使用MYSQL TIMESTAMP字段进行时间加减运算可以用来计算两个时间点之间的时间差,或者以一定的时间单位进行时间加减运算。下面是完整的攻略: 1. TIMESTAMP字段的格式 在MYSQL中,TIMESTAMP字段的格式为”yyyy-mm-dd hh:mm:ss”,其中yyyy为年份,mm为月份,dd为日期,hh为小时,mm为分钟,ss为秒钟。例如,…

    database 2023年5月22日
    00
  • SQL Server中Check约束的学习教程

    SQL Server中Check约束的学习教程 什么是Check约束 在SQL Server中,Check约束是一种用于限制列中数据输入的有效值范围的方法。它可以保证列中输入的数据符合预设的条件,避免了数据输入错误或不合法数据的产生。Check约束常被用于保证数据的准确性和完整性,能够有效地约束数据处理流程。 如何创建Check约束 在SQL Server中…

    database 2023年5月21日
    00
  • MySQL数据库的事务和索引详解

    MySQL是一种关系型数据库管理系统,支持事务处理和索引。在使用MySQL开发应用程序时,理解事务和索引的概念非常重要。下面是MySQL数据库的事务和索引的详细攻略。 事务 事务是一系列数据库操作的集合,要么全部成功,要么全部失败。MySQL支持基于ACID规则的事务处理。ACID是指原子性(Atomicity)、一致性(Consistency)、隔离性(I…

    database 2023年5月19日
    00
  • SQL中代替Like语句的另一种写法

    SQL中代替Like语句的另一种写法是使用正则表达式。正则表达式是一种描述文本模式的方法,我们可以用它来匹配、查找和替换文本中的字符。 在SQL中,可以使用RLIKE或REGEXP操作符实现正则表达式匹配,代替Like语句。 下面是使用RLIKE操作符实现正则表达式匹配的语法: SELECT * FROM table_name WHERE column_na…

    database 2023年5月19日
    00
  • sql server 2008 数据库管理系统使用SQL语句创建登录用户步骤详解

    下面我将详细讲解“SQL Server 2008 数据库管理系统使用SQL语句创建登录用户步骤详解”的完整攻略。 一、创建登陆账户的SQL语句格式 在SQL Server 2008中,创建登录账户的SQL语句格式如下: CREATE LOGIN 登录名 WITH PASSWORD = ‘登录密码’, DEFAULT_DATABASE = 默认数据库名, DE…

    database 2023年5月21日
    00
  • redis中Could not get a resource from the pool异常及解决方案

    当使用Redis作为缓存系统时,由于其高性能和高可用性,被广泛使用。但有时候,我们可能会遇到相应的异常。其中一个常见的异常是“Could not get a resource from the pool”(无法从池中获取资源)。 1. 异常原因 无法从池中获取资源的异常是由于Redis连接意外断开或者连接池中没有空闲连接。当我们在系统中频繁地连接和释放Red…

    database 2023年5月22日
    00
  • DBMS和RDBMS之间的区别

    DBMS和RDBMS是数据库管理系统的两种类型。DBMS是数据库管理系统的一种,创新性地推出了数据库系统,RDBMS又是DBMS派生出来一种。两者之间的区别在于数据存储方式、数据结构和服务运行规则等方面。 一、DBMS概述 DBMS(Database Management System)是数据库管理系统的缩写,是对人员、软件和硬件等一系列资源进行管理的系统。…

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