Android中数据库常见操作实例分析

Android中数据库常见操作实例分析

在Android开发中,常常需要使用数据库进行数据的存储和管理。本文将针对Android中的数据库常见操作进行实例分析,包括创建数据库、创建数据表、插入数据、查询数据、删除数据等操作。

创建数据库

创建数据库的过程需要继承SQLiteOpenHelper类,重写onCreate()和onUpgrade()方法。

public class MyDatabaseHelper extends SQLiteOpenHelper {
    private static final String DB_NAME = "mydata.db";  //数据库名称
    private static final int DB_VERSION = 1;  //数据库版本号

    public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //创建表
        String sql = "CREATE TABLE IF NOT EXISTS users(_id INTEGER PRIMARY KEY, username TEXT, password TEXT)";
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //升级数据库
        String sql = "DROP TABLE IF EXISTS users";
        db.execSQL(sql);
        onCreate(db);
    }
}

创建数据表

在onCreate()方法中创建表。通过调用execSQL()方法执行创建表的SQL语句。

@Override
public void onCreate(SQLiteDatabase db) {
    //创建表
    String sql = "CREATE TABLE IF NOT EXISTS users(_id INTEGER PRIMARY KEY, username TEXT, password TEXT)";
    db.execSQL(sql);
}

插入数据

使用ContentValues对象存储需要插入的数据,调用insert()方法将数据插入到数据库中。

ContentValues values = new ContentValues();
values.put("username", "Tom");
values.put("password", "123456");
long id = db.insert("users", null, values);

查询数据

使用query()方法进行查询,参数包括表名、列名、查询语句、查询条件等。查询结果存储在Cursor对象中,可以通过moveToFirst()和moveToNext()等方法进行遍历。

Cursor cursor = db.query("users", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
    do {
        int id = cursor.getInt(cursor.getColumnIndex("_id"));
        String username = cursor.getString(cursor.getColumnIndex("username"));
        String password = cursor.getString(cursor.getColumnIndex("password"));
    } while (cursor.moveToNext());
}

删除数据

使用delete()方法进行删除,参数包括表名、删除条件等。

int count = db.delete("users", "username=?", new String[]{"Tom"});

示例1:创建学生信息表

@Override
public void onCreate(SQLiteDatabase db) {
    //创建学生信息表
    String sql = "CREATE TABLE IF NOT EXISTS students(_id INTEGER PRIMARY KEY, name TEXT, age INTEGER, gender TEXT)";
    db.execSQL(sql);
}

示例2:查询年龄大于等于18岁的学生信息

Cursor cursor = db.query("students", null, "age>=?", new String[]{"18"}, 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"));
        String gender = cursor.getString(cursor.getColumnIndex("gender"));
    } while (cursor.moveToNext());
}

以上是Android中数据库常见操作实例分析的完整攻略,通过本文的实例介绍,大家应该对Android中数据库的操作有了更深入的了解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android中数据库常见操作实例分析 - Python技术站

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

相关文章

  • springboot集成redis存对象乱码的问题及解决

    下面是“Spring Boot集成Redis存对象乱码问题及解决”的攻略,内容包括: 问题描述 在使用Spring Boot集成Redis存储对象时,可能会遇到对象乱码的问题,具体表现为从Redis中读取出的对象中文字符变成乱码。这是由于Redis默认使用的是二进制序列化格式来存储对象,而该格式对中文字符的编码是不支持的。 解决方案 解决该问题的方案是更改R…

    database 2023年5月22日
    00
  • MyBatisPlus 大数据量查询慢的问题解决

    长时间的 SQL 执行和慢查询经常是面对大量数据时的问题。在使用 MyBatisPlus 进行大数据量的查询时,也会遇到这样的问题。下面详细讲解如何解决这些问题。 问题背景 在使用 MyBatisPlus 进行大数据量的查询时,由于返回的数据较多,可能会导致 SQL 执行时间较长,甚至会出现慢查询的情况。下面列举几个可能会导致查询缓慢的因素: 数据库存储介质…

    database 2023年5月21日
    00
  • Oracle中SQL语句连接字符串的符号使用介绍

    当在Oracle中使用SQL语句拼接字符串时,可以使用“||”符号,也可以使用“CONCAT”函数。 使用“||”符号进行字符串拼接: 在Oracle中,使用“||”符号进行字符串拼接是非常常用的一种方式,语法如下: SELECT column_name1 || string || column_name2 AS result FROM table_name…

    database 2023年5月21日
    00
  • Weaviate和WakandaDB的区别

    Weaviate和WakandaDB都是开源的NoSQL数据库,但是它们有着不同的特点和适用场景。 Weaviate是一个语义搜索引擎,可以对复杂的数据进行自然语言搜索,并根据搜索结果进行智能推荐和聚类。它是基于向量化的语义分析技术实现的,可以处理半结构化和非结构化数据,适用于文本、图像、音频等各类数据。我们可以通过Weaviate的REST API进行数据…

    database 2023年3月27日
    00
  • 通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法

    这是一篇关于“通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法”的攻略,攻略包含以下内容: 问题原因 解决方法 配置允许远程连接的账户和密码 配置服务器的防火墙规则 示例说明 问题原因 当我们在使用Navicat for MySQL远程连接MySQL数据库时,会遇到以下错误: error 1130 (HY000): Ho…

    database 2023年5月18日
    00
  • 2019最新21个MySQL高频面试题介绍

    2019最新21个MySQL高频面试题介绍 1.什么是MySQL? MySQL是一款开源的关系型数据库管理系统,最早由瑞典MySQL AB公司开发,现在由Oracle公司维护。 2. MySQL中数据类型有哪些? MySQL中数据类型包括整数类型、时间日期类型、字符类型、二进制类型等。 整数类型 MySQL中常用的整数类型有tinyint、smallint、…

    database 2023年5月19日
    00
  • ORACLE中如何找到未提交事务的SQL语句详解

    要找到Oracle中未提交的事务的SQL语句,你需要执行以下步骤: 1. 查看当前正在进行的事务 使用以下SQL查询当前正在进行的事务,以查看是否有未提交的事务: SELECT s.inst_id, s.sid, s.serial#, s.status, s.username, s.osuser, s.machine, s.program, s.module…

    database 2023年5月21日
    00
  • mysql快速添加百万条记录的语句

    添加百万条记录的常用方法有两种:使用LOAD DATA语句导入CSV文件和使用INSERT语句批量插入数据。 使用LOAD DATA语句导入CSV文件 步骤: 创建CSV文件,格式必须与目标表字段顺序相同,每行表示一条记录,字段之间用逗号分隔。 登录MySQL客户端。 创建目标表。 使用以下语句导入数据: LOAD DATA INFILE ‘file_pat…

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