Android创建和使用数据库SQLIte

下面就为您详细讲解“Android创建和使用数据库SQLIte”的完整攻略:

1. 基本概念

在开发过程中,常会使用数据存储和读取功能。而SQLite是一种轻型的关系型数据库,是Android系统内置的一种数据库,被广泛的应用于Android应用开发中。它提供了一个简单易用的API来操作数据库,支持标准的SQL语句。

2. 创建SQLite数据库

在Android中,创建数据库可以借助SQLiteOpenHelper类来完成,具体步骤如下:

2.1 创建SQLiteOpenHelper的子类

创建SQLiteOpenHelper的子类,用于辅助管理数据库的创建、版本升级等操作。在该类中,需要实现以下方法:

  • onCreate:当数据库首次创建时调用,用于初始化表结构等操作。
  • onUpgrade:当数据库升级时调用,用于更新表结构等操作。

示例如下:

public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "mydb.db"; // 定义数据库名称
    private static final int DATABASE_VERSION = 1; // 定义数据库版本号

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        String table = "CREATE TABLE student (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,age INTEGER)";
        db.execSQL(table);
    }

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

2.2 创建 SQLiteOpenHelper 实例

在使用数据库之前,需要创建 SQLiteOpenHelper 的实例:

DatabaseHelper dbHelper = new DatabaseHelper(context);

2.3 获取 SQLiteDatabase 实例

通过 SQLiteOpenHelper 实例获取 SQLiteDatabase 实例,通过该实例完成对数据库的增删改查操作:

SQLiteDatabase db = dbHelper.getWritableDatabase();

3. 操作SQLite数据库

通过获取的SQLiteDatabase实例,我们可以进行表的增、删、改、查等操作,如下所示:

3.1 表的创建

表的创建可以通过上面的 onCreate 方法来实现,示例如下:

String table = "CREATE TABLE student (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,age INTEGER)";
db.execSQL(table);

3.2 表的插入

表的插入可以通过SQLiteDatabase的insert方法来实现,示例如下:

ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("age", 25);
db.insert("student", null, values);

3.3 表的修改

表的修改可以通过SQLiteDatabase的update方法来实现,示例如下:

ContentValues values = new ContentValues();
values.put("name", "李四");
values.put("age", 26);
db.update("student", values, "_id = ?", new String[]{"1"});

3.4 表的删除

表的删除可以通过SQLiteDatabase的delete方法来实现,示例如下:

db.delete("student", "_id = ?", new String[]{"1"});

3.5 表的查询

表的查询可以通过SQLiteDatabase的query方法来实现,示例如下:

Cursor cursor = db.query("student", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
    do {
        String name = cursor.getString(cursor.getColumnIndex("name"));
        int age = cursor.getInt(cursor.getColumnIndex("age"));
    } while (cursor.moveToNext());
}

4. 示例

下面我们实现一个简单的demo,对学生的成绩进行增删改查操作。

4.1 学生表的创建

String table = "CREATE TABLE scores (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, math INTEGER, english INTEGER)";
db.execSQL(table);

4.2 学生表的插入

ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("math", 80);
values.put("english", 90);
db.insert("scores", null, values);

4.3 学生表的修改

ContentValues values = new ContentValues();
values.put("math", 85);
values.put("english", 92);
db.update("scores", values, "_id = ?", new String[]{"1"});

4.4 学生表的删除

db.delete("scores", "_id = ?", new String[]{"1"});

4.5 学生表的查询

Cursor cursor = db.query("scores", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
    do {
        String name = cursor.getString(cursor.getColumnIndex("name"));
        int math = cursor.getInt(cursor.getColumnIndex("math"));
        int english = cursor.getInt(cursor.getColumnIndex("english"));
    } while (cursor.moveToNext());
}

到这里,我们已经完成了使用SQLiteOpenHelper类创建和使用SQLite数据库的过程,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android创建和使用数据库SQLIte - Python技术站

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

相关文章

  • MySql日期查询语句详解

    下面我将详细介绍”MySql日期查询语句详解”的攻略。 一、简介 日期和时间是数据库中经常使用的数据类型之一。MySQL提供了一系列的日期和时间函数,可以对日期和时间数据进行格式化、计算、比较等操作。在MySQL中,常用的日期查询语句有date()函数、DATE_FORMAT()函数、DATE_ADD()函数、DATE_SUB()函数等。 二、DATE()函…

    database 2023年5月21日
    00
  • 从零学习node.js之mysql数据库的操作(五)

    从零学习node.js之mysql数据库的操作(五)是一篇关于使用MySQL数据库进行操作的教程。该文章包括以下内容: 一、安装mysql 在开始之前,需要先安装mysql,具体方法可以参考官方文档或者在网上查找相关资料。一般来说,大多数平台都可以通过以下命令进行安装: sudo apt-get install mysql-server 二、安装mysql模…

    database 2023年5月21日
    00
  • docker 配置redis并远程访问

    我安装的是这个镜像 docker.io/redis docker pull docker mkdir docker cd docker mkdir redis cd redis mkdir data 创建启动容器,配置持久化启动 docker run -d –privileged=true -p 6379:6379 -v /docker/redis/red…

    Redis 2023年4月13日
    00
  • Vert-x-通过异步的方式使用JDBC连接SQL

    下面就为您详细讲解 Vert.x 如何通过异步的方式使用 JDBC 连接 SQL 的攻略。 什么是 Vert.x? Vert.x 是一个面向 JVM 的开源高性能应用程序框架,它基于事件驱动和异步的原则,提供了广泛的语言可选性(包括 Java、Kotlin、Scala、Groovy 等),使得开发人员能够轻松构建异步、高可扩展的应用程序。 Vert.x 一直…

    database 2023年5月21日
    00
  • MySql 5.7.17压缩包免安装的配置过程图解

    下面是“MySql 5.7.17压缩包免安装的配置过程图解”的完整攻略: 准备工作 下载Mysql压缩包并解压到某个目录下,例如D:\mysql-5.7.17-win32。 修改配置文件 在D:\mysql-5.7.17-win32目录下新建my.ini文件,内容如下: [mysql] default-character-set=utf8 [mysqld] …

    database 2023年5月22日
    00
  • linux下的通配符与正则表达式

    下面是针对“linux下的通配符与正则表达式”的详细讲解: 一、通配符 在Linux中,通配符是指用来匹配文件名或路径名中的通用字符的特殊字符。Linux中常用的通配符有三种:*,?和[]。 1. *通配符 *通配符表示匹配任何字符,可以零个字符或多个字符。 例如,命令ls *.txt表示列出当前目录下所有扩展名为.txt的文件。 2. ?通配符 ?通配符表…

    database 2023年5月22日
    00
  • PHP+Oracle本地开发环境搭建方法详解

    安装PHP 下载php安装包:在php官网下载最新PHP版本的zip包(https://windows.php.net/download/); 解压到C:盘根目录下,将文件夹“php-xxxxx”重命名为“php”; 配置PHP:将C:\php\php.ini-development重命名为C:\php\php.ini,并使用任何文本编辑器(如记事本++)编…

    database 2023年5月22日
    00
  • SQLServer中bigint转int带符号时报错问题解决方法

    下面我将详细讲解“SQLServer中bigint转int带符号时报错问题解决方法”的完整攻略。 问题描述 在 SQL Server 中,当我们使用 CONVERT(int, bigint_num) 将 bigint 类型的数据转换为带符号的 int 类型时,可能会遇到以下错误: Msg 8115, Level 16, State 2, Line 4 Ari…

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