免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持APP、电脑端、小程序、IOS免签等等

app 开发 本地数据库

在移动应用开发中,由于需要处理大量的数据,因此使用本地数据库来存储数据是非常常见的。本地数据库与远程数据库不同,它是存储在设备本地的一种数据存储方式。本地数据库有很多种,其中 SQLite 是一种非常受欢迎的本地数据库,它是一种轻量级的数据库,支持跨平台操作,可以在 iOS、Android 和 Windows 上运行。

一、SQLite 数据库的使用方法

1. 引入 SQLite 库

在应用程序的 build.gradle 文件中加入以下代码:

```

dependencies {

compile 'com.facebook.stetho:stetho:1.5.0'

compile 'com.facebook.stetho:stetho-okhttp3:1.5.0'

compile 'com.squareup.okhttp3:okhttp:3.5.0'

compile 'com.squareup.okhttp3:logging-interceptor:3.5.0'

compile 'com.facebook.stetho:stetho-js-rhino:1.5.0'

compile 'com.facebook.stetho:stetho-js:1.5.0'

compile 'com.facebook.stetho:stetho-common:1.5.0'

compile 'com.squareup.retrofit2:retrofit:2.3.0'

compile 'com.squareup.retrofit2:converter-gson:2.3.0'

compile 'net.zetetic:android-database-sqlcipher:3.5.9@aar'

}

```

2. 创建数据库

首先要创建 DBhelper 类,DBhelper 继承自 SQLiteOpenHelper:

```

public class DBhelper extends SQLiteOpenHelper {

public DBhelper(Context context, String name, CursorFactory factory, int version) {

super(context, name, factory, version);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL("create table if not exists user(id integer primary key autoincrement,name varchar(10),age varchar(10))");

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

//升级数据库

}

}

```

创建好 DBhelper 后,在 Activity 中创建一个 DBhelper 的实例:

```

mDbhelper = new DBhelper(this, "test.db", null, 1);

```

3. 数据库插入数据

插入数据可以通过 ContentValues 的方式实现:

```

ContentValues values = new ContentValues();

values.put("name", "Java");

values.put("age", "10");

mDbhelper.getWritableDatabase().insert("user", null, values);

```

或者通过 SQL 语句的方式实现:

```

mDbhelper.getWritableDatabase().execSQL("insert into user(name,age) values('Java',10)");

```

4. 数据库查询数据

查询数据可以通过 Cursor 对象实现:

```

String sql = "select * from user";

Cursor cursor = mDbhelper.getWritableDatabase().rawQuery(sql, null);

while (cursor.moveToNext()) {

int id = cursor.getInt(cursor.getColumnIndex("id"));

String name = cursor.getString(cursor.getColumnIndex("name"));

String age = cursor.getString(cursor.getColumnIndex("age"));

Log.i(TAG, "id=" + id + ",name=" + name + ",age=" + age);

}

cursor.close();

```

5. 数据库更新数据

更新数据可以通过 ContentValues 的方式实现:

```

ContentValues values = new ContentValues();

values.put("age", 20);

mDbhelper.getWritableDatabase().update("user", values, "name=?", new String[]{"Java"});

```

或者通过 SQL 语句的方式实现:

```

String sql="update user set age=20 where name='Java'";

mDbhelper.getWritableDatabase().execSQL(sql);

```

6. 数据库删除数据

删除数据可以通过 SQL 语句的方式实现:

```

String sql="delete from user where name='Java'";

mDbhelper.getWritableDatabase().execSQL(sql);

```

二、SQLite 数据库的原理

SQLite 是一个轻量级的数据库,跟其他的数据库相比,它的设计体系更加紧凑。它的数据库引擎是以 C 语言实现的,整个数据库可以存储在一个文件里面,不需要一个额外的服务器程序来协助存储管理。SQLite 的设计目标是使得移动设备和嵌入式设备能够高效地存储数据和查询数据,因此,SQLite 的主要应用场景是移动应用和嵌入式设备。

SQLite 数据库的文件结构非常简洁,包含 5 种文件结构:

1. 文件头

2. 数据库页

3. 数据页

4. 索引页

5. 跟踪页

SQLite 的查询语言采用的是 SQL92 标准,但是 SQLite 支持的 SQL 语法的一部分是是与 SQL92 不兼容的。SQLite 具有正确的、无锁的并发操作,能够确保多个进程和线程同时访问数据库而不出现数据损坏的情况。

在 SQLite 数据库中,表达数据模型的是查询计划,查询计划是一颗查询树,它表示了查询过程中所需的数据流。每个节点都有一个输入和一个输出,输入数据会处理产生输出, 最终的节点会把所需的数据输入到查询结果里面。

总结

本文介绍了使用 SQLite 数据库的方法和 SQLite 数据库的原理,SQLite 作为一个轻量级的数据库,非常适合在移动应用和嵌入式设备中使用。使用 SQLite 数据库可以非常方便地存储处理数据,并且保证了数据的稳定性和安全性。相信通过本文的介绍,读者对 SQLite 数据库的使用和原理有了更深入的了解,可以更加熟练地在开发中使用这个工具。


相关知识:
秦皇岛直销互助系统app开发
秦皇岛直销互助系统是一种新型的互助保障服务,主要是通过智能手机App的方式将用户联系起来,实现互相帮助的目的。该系统的开发需要涉及到多个方面的知识和技术,下面将对其进行原理和详细介绍。一、系统原理秦皇岛直销互助系统的实现主要是依托互联网技术,利用智能手机A
2024-01-10
三沙智还app开发
三沙智还app是一款基于互联网、智慧城市建设和智能化服务的移动应用软件。该软件主要为用户提供便捷的城市公共服务,包括公共交通、停车、环保、电力、水务等方面的服务。同时,该软件也是三沙市政府的一项重要智慧城市建设项目,旨在通过数字化、智能化手段提高城市管理水
2024-01-10
app开发商业运营模式有哪些
App开发的商业运营模式有多种,下面将详细介绍其中几种常见的模式。1. 广告模式:广告模式是最常见的商业运营模式之一。在这种模式下,开发者通过在App中展示广告来获取收入。广告可以以横幅、插屏、视频等形式展示,开发者可以选择合适的广告形式来获得最佳效果。收
2023-06-29
app开发会计科目
在进行app开发时,会计学科目也需要被了解和应用,因为app开发涉及到了许多的成本和收益等财务问题。在本文中,我们将介绍在app开发中关注的一些主要会计科目以及它们的原理。1. 现金流量表在开发一个app之前,需要先准备一个现金流量表,它是会计学中的一个重
2023-06-29
app的软件定制开发杭州
软件定制开发指的是根据客户的需求,为其提供专门定制的软件开发服务。这种服务通常由专业的软件开发公司提供,根据客户的具体需求,为其提供最佳的解决方案。软件的定制开发通常需要经过多次沟通和调整,确保最终的软件完全满足客户的需求。下面将详细介绍软件定制开发的原理
2023-05-06
apple开发者共享是什么意思
Apple开发者共享是指苹果公司提供的一个平台,给予开发者可以共享他们开发的app和游戏。这个平台也可以让开发者获取有关在iOS和macOS设备上编写应用程序的各种支持和工具。开发者共享是通过苹果公司提供的一个专门的网站实现的,叫做苹果开发者中心。这个网站
2023-05-06