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

yizhihongxing

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

什么是SQLite数据库

SQLite是一种轻型的关系型数据库。与其他数据库不同,SQLite是嵌入式的数据库,它不需要独立的服务器进程或配置,而直接读取或写入普通文件。这使得SQLite非常适用于需要轻量级、快速、可靠的数据存储和检索的场景,包括Android应用。

在Android中使用SQLite数据库

Android提供了一个SqliteOpenHelper类,该类封装了SQLite数据库文件的创建和升级,以及查询数据库的方法,使得直接在Android应用中使用SQLite数据库变得容易。

创建一个SQLite数据库

首先要创建一个继承自SqliteOpenHelper类的Java类,并实现它的onCreate()和onUpgrade()方法。在onCreate()方法中,你可以定义数据库表,如下面的示例:

public class MyDatabaseHelper extends SQLiteOpenHelper {
    public static final String DB_NAME = "mydatabase.db";
    public static final int DB_VERSION = 1;

    public MyDatabaseHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE IF NOT EXISTS person (" +
                "_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
                "name TEXT, " +
                "age INTEGER)");
    }

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

在上面的示例中,我们定义了一个名为person的表,该表包含三个字段:_id、name和age。

插入数据

要向数据库中插入数据,需要获取可写的SQLiteDataBase对象。通过ContentValues对象封装数据,然后调用insert()方法即可。示例代码如下:

SQLiteDatabase db = myDatabaseHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("age", 18);
db.insert("person", null, values);

在上面的示例中,我们向person表插入了一条记录,其中name为“张三”,age为18。

查询数据

要查询数据库中的数据,需要获取可读的SQLiteDataBase对象,在调用query()方法进行查询。示例代码如下:

SQLiteDatabase db = myDatabaseHelper.getReadableDatabase();
Cursor cursor = db.query("person", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
    do {
        int id = cursor.getInt(cursor.getColumnIndex("_id"));
        String name = cursor.getString(cursor.getColumnIndex("name"));
        int age = cursor.getInt(cursor.getColumnIndex("age"));
    } while (cursor.moveToNext());
}
cursor.close();

在上面的示例中,我们查询了person表中的所有数据,并将_id、name和age分别赋值给了变量id、name和age。

示例说明

下面通过两个简单的示例来演示在Android中操作SQLite数据库的过程:

示例1:创建学生表,插入数据

public class MyDatabaseHelper extends SQLiteOpenHelper {
    public static final String DB_NAME = "mydatabase.db";
    public static final int DB_VERSION = 1;

    public MyDatabaseHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE IF NOT EXISTS student (" +
                "_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
                "name TEXT, " +
                "number TEXT)");
    }

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

在MainActivity的onCreate方法中实例化MyDatabaseHelper对象,并向student表中插入一条学生记录,代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
    SQLiteDatabase db = dbHelper.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put("name", "张三");
    values.put("number", "1001");

    db.insert("student", null, values);
}

示例2:查询学生表,并将结果显示到ListView中

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
    SQLiteDatabase db = dbHelper.getReadableDatabase();

    Cursor cursor = db.query("student", null, null, null, null, null, null);
    List<String> list = new ArrayList<>();
    if (cursor.moveToFirst()) {
        do {
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String number = cursor.getString(cursor.getColumnIndex("number"));
            String result = "姓名:" + name + " 学号:" + number;
            list.add(result);
        } while (cursor.moveToNext());
    }
    cursor.close();

    ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
            android.R.layout.simple_list_item_1, list);
    ListView listView = findViewById(R.id.list_view);
    listView.setAdapter(adapter);
}

在上面的示例中,我们调用query()方法查询student表,并将结果存储在List list中,然后使用ArrayAdapter将查询结果填充到ListView中。

以上就是在Android应用中操作SQLite数据库的完整攻略了,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android编程操作嵌入式关系型SQLite数据库实例详解 - Python技术站

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

相关文章

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

    SQLite教程(一):SQLite数据库介绍 简介 SQLite是一种轻型的、嵌入式的、基于文件的关系型数据库管理系统,它是一款开源软件,与MySQL、Oracle等传统数据库相比,SQLite的特点是小巧、快速、可靠。 安装SQLite 先到SQLite官网(https://www.sqlite.org/index.html)下载适合你操作系统的SQLi…

    database 2023年5月21日
    00
  • Shell脚本检查IP格式及mysql操作实例

    关于“Shell脚本检查IP格式及Mysql操作实例”的完整攻略,包含以下几个方面: Shell脚本:如何检查IP格式 在Shell脚本中,检查IP格式的方法如下: #!/bin/bash checkip() { ip=$1 if echo $ip | egrep -q ‘^([0-9]{1,3}\.){3}[0-9]{1,3}$’; then return…

    database 2023年5月22日
    00
  • Oracle 创建监控账户 提高工作效率

    Oracle 创建监控账户 提高工作效率 为什么要创建监控账户 在 Oracle 数据库的日常运维中,为了保证数据库的稳定性和安全性,需要对数据库的各种性能指标、日志信息、系统状态等进行监控,及时发现并解决潜在问题。这些监控数据需要通过一定的手段进行采集和分析,通常需要使用一些第三方工具或者脚本。为了确保安全性和权限控制,这些工具或脚本需要使用一个专门的账户…

    database 2023年5月22日
    00
  • MySQL数据表使用的SQL语句整理

    针对“MySQL数据表使用的SQL语句整理”的完整攻略,以下是具体步骤: 1. 创建数据库 在MySQL客户端中使用CREATE DATABASE语句创建一个新数据库,比如mydb。 CREATE DATABASE mydb; 2. 创建数据表 使用CREATE TABLE语句创建一个新数据表,比如users。 定义数据表的列名和数据类型,并设置主键约束。 …

    database 2023年5月21日
    00
  • Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解

    下面将为您分享Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解: 前置条件 确保您已安装了CentOS 6.5操作系统 确保您已安装了PHP 5.3版本 确保您已安装了FFmpeg库 安装必要的软件包 在安装ffmeg的过程中,需要使用到一些必要的软件包,我们首先来安装它们。 sudo yum install gcc \ glibc-dev…

    database 2023年5月22日
    00
  • MySQL存储过程的异常处理方法

    MySQL存储过程的异常处理方法 MySQL存储过程中的异常处理可以通过以下几种方式来完成: DECLARE 声明异常变量,用于存储异常信息 sqlDECLARE exception_info VARCHAR(100);BEGIN—- 执行语句–EXCEPTIONWHEN exception_name THEN SET exception_info =…

    database 2023年5月21日
    00
  • 浅谈安装ORACLE时在Linux上设置内核参数的含义

    安装ORACLE时在Linux上设置内核参数是非常重要的,以便获得最佳的系统性能和数据安全性。接下来,我们将详细讲解如何在Linux上设置内核参数。 安装ORACLE前的准备工作 在安装ORACLE前,我们需要进行一些准备工作。 确认内核版本:使用uname -r命令查询系统内核版本。 确认内存大小:使用cat /proc/meminfo | grep Me…

    database 2023年5月22日
    00
  • 在oracle 数据库查询的select 查询字段中关联其他表的方法

    查询中关联其他表通常使用“JOIN”查询关键字。 首先,在SELECT查询中,需要关联其他表的时候,需要和所查询的数据表制定表别名。 例如,以下两个表: 表一: id name 1 张三 2 李四 3 王五 表二: id gender 1 男 2 女 需要查询姓名和性别的数据时,此时就需要将表一和表二进行关联查询: SELECT a.name, b.gend…

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