为什么我们要将Couchbase Lite与Android Studio集成

2017-08-11 196

Couchbase Lite是一种用于移动设备的嵌入式NoSQL数据库,可在具有完整CRUD和查询功能的设备上运行。在本文中,我们将发现如何将Couchbase Lite与Android Studio集成。

移动设备的Android目前带有一个内置的本地数据库SQLite。这是一个基于RDBMS的轻量级数据库,默认情况下在所有Android操作系统上可用,并提供CRUD操作,以有效地为您的应用程序提供支持。SQLite真的是一个很好的选择,当需求只是一个简单的数据库为您的应用程序来管理结构化数据。但是,当需要存储半结构化数据或非结构化数据时,还可以处理复杂的查询而不用担心表的模式,那么SQLite可能无法满足开发人员的所有要求。NoSQL数据库可以更好地适应这些扩展需求。SQL和NoSQL数据库之间的比较推动了许多辩论,但彼此相辅相成,而不是相互竞争。

在本文中,我们首先讨论移动设备的一般数据库需求,其次是NoSQL在当今移动领域的突出地位,最后,再看一下将名为Couchbase Lite的NoSQL数据库与Android Studio集成。

移动设备的数据库

决定移动设备的数据库需要考虑诸如内存限制,用户体验,轻量级UI等各种因素 - 与桌面或Web环境所需要的参数非常不同。所以在我们开始将Couchbase Lite与Android集成之前,我们先来看看下面列出的移动环境中的数据库的各种要求。

具有基于云的数据库后端的移动开发人员(如Firebase)不必担心大多数这些约束和要求,而是需要在选择本地数据库时将这些因素包含在方程式中。

NoSQL在移动领域的相关性

随着移动设备的使用量的增加,这些年数量正在大量生成。这一事实使得技术扩散成为移动性,物联网和分析技术的新空间,导致了移动设备和应用程序需要高速处理这种大量数据。此外,数据的性质(特别是来自实时数据交换的物联网设备)是连续的,并且是半结构化的或应用程序需要适应或适应各种模式。NoSQL带来的一些基本哲学就是解决移动领域的挑战,如下所述。

所有这些说,我们仍然可能无法在许多方面消除补充NoSQL的SQL数据库。NoSQL不保证RDBMS能够实现的数据的原子性或完整性。因此,开发人员在一天结束时的需求决定了哪个数据库。

将Couchbase Lite与Android Studio集成

Couchbase Lite是Apache License 2.0提供的开源项目。它是一个嵌入式JSON数据库,可以在P2P网络中作为独立工作,也可以作为Sync Gateway的远程端点。在本文中,我们将介绍如何使用Couchbase Lite为Android应用程序提供支持。

在进行集成之前,我们先看看关于这个数据库的几个关键功能。

现在让我们来看一下安装Couchbase Lite和其他基本操作的步骤。

假设读者已经熟悉Android Studio IDE开发Android应用程序。将Couchbase dB与Android集成很简单。您可以从应用程序的build.gradle中添加以下给出的依赖元素:

dependencies {
 
compile 'com.couchbase.lite:couchbase-lite-android:+'
 
}

在应用程序的Java部分,您将需要以下基本的软件包集:

import com.couchbase.lite.*;
 
import com.couchbase.lite.android.AndroidContext;

现在您已经在Android应用程序中使用CouchBase API,我想说明用于创建数据库的示例代码,并在其中插入,更新和删除其中的文档,如(1)所述, ,(2),(3)和(4)。

// (1) Get the database or create it if it doesn’t already exist.
 
Manager manager = new Manager(new JavaContext(),Manager.DEFAULT_OPTIONS);
 
Database db = manager.getDatabase("couchdB");
 
// (2) Create a new document (a record) in the database.
 
Document doc = db.createDocument();
 
Map properties = new HashMap();
 
properties.put("firstName", "OSFY");
 
doc.putProperties(properties);
 
// (3) Update a document.
 
doc.update(new Document.DocumentUpdater() {
 
@Override
 
public boolean update(UnsavedRevision newRevision) {
 
Map properties = newRevision.getUserProperties();
 
properties.put("firstName", "Johnny");
 
newRevision.setUserProperties(properties);
 
return true;
 
}
 
});
 
// (4) Delete a document.
 
doc.delete();

相关资讯

热门项目排行榜