bmob云数据库属于mysql吗_bmob开发文档-Bmob移动后端云服务平台

#Android 示例与教程

失物招领案例教程

需求描述

为演示Bmob提供的云数据库的功能,本文制作了一个失物招领的简单案例,实现物品的发布、修改、呈现和删除,展示如何使用Bmob快速开发一个有后端数据库的应用软件。使用场景如下:用户捡到物品,打开手机软件,填写物品的招领信息(标题、描述和联系方式);用户丢失物品,打开手机软件,填写物品的丢失信息(标题、描述和联系方式);任何人都可以查看到失物和招领的信息列表,可以对发布的信息进行删除。

说明一点的是,因为是演示案例,所以信息的添加和删除并没有进行用户身份验证。

本案例将使用到Bmob的如下功能:

1、 添加数据

添加失物/招领信息到服务器中。

2、 查找数据

在列表中显示所有用户发布的失物/招领信息。

3、 删除数据

删除已发布的失物/招领信息。

本案例最终实现的部分界面效果如下:

b277bd370445479075074c25ae8a8002.png

招领列表页

9672ca75f963cc5ab4489e7a81d3488b.png

添加失物信息

数据结构设计

本案例的数据结构非常简单,只需要设计两个表,一个是失物表(Lost表),一个是招领表(Found表),对应的数据结构如下(省略对常用默认字段objectId、createAt、updateAt的描述,对于还不知道怎么创建应用和添加数据表的开发朋友请先移步快速入门指南查看相关教程):

失物表(Lost)字段名

类型

描述

describe

String

失物的描述信息

phone

String

联系的手机号码

title

String

失物的标题信息

招领表(Found)字段名

类型

描述

describe

String

招领的描述信息

phone

String

联系的手机号码

title

String

招领的标题信息

初始化SDK

Bmob为每个应用都提供了一个唯一标识(对应为开发者后台应用中的“应用密钥->Application ID”),使用Bmob开发的应用都要首先使用这个Application ID”进行初始化。对应代码如下(详细代码实现参看BaseActivity类):protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//初始化 Bmob SDK,第一个参数为上下文,第二个参数为Application ID

Bmob.initialize(this, Constants.Bmob_APPID);

//其他代码

}

创建数据模型类

为操作Bmob的云端数据库,SDK首先需要创建数据表对应的模型类(模型类的名称必须和云端数据表的名称一致),该类需要继承自BmobObject,实现刚刚创建的数据表字段的set和get方法(系统默认字段objectId、createAt、updateAt不需要声明)。因为本案例需要操作Lost表和Found表,因此需要创建Lost类和Found类。下面是Lost模型类的实现代码(Found模型类的实现代码略):public class Lost extends BmobObject{

private String title;//标题

private String describe;//描述

private String phone;//联系手机

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public String getDescribe() {

return describe;

}

public void setDescribe(String describe) {

this.describe = describe;

}

public String getPhone() {

return phone;

}

public void setPhone(String phone) {

this.phone = phone;

}

}

添加失物/招领信息

用户填写了失物信息之后,只需要构造一个Lost实例,然后简单调用模型类的insertObject方法(第一个参数是上下文,第二个参数是插入信息的回调类)就可以将信息添加到云数据库中,实现代码如下(详细代码实现参看AddActivity类):Lost lost = new Lost();

lost.setDescribe(describe);

lost.setPhone(photo);

lost.setTitle(title);

lost.save(this, new SaveListener() {

@Override

public void onSuccess() {

ShowToast(“失物信息添加成功!”);

//其他代码

}

@Override

public void onFailure(int code, String arg0) {

ShowToast(“添加失败:”+arg0);

}

});

获取失物/招领列表

Bmob提供了复杂和简单的查询方法,可以对查询结果进行排序,可以对结果进行缓存。本案例只使用到Bmob提供的最简单的查询和排序功能,直接调用BmobQuery类的findObjects方法和order方法来获取失物列表,实现代码如下(详细代码实现参看MainActivity类):BmobQuery query = new BmobQuery();

//按照时间降序

query.order(“-createdAt”);

//执行查询,第一个参数为上下文,第二个参数为查找的回调

query.findObjects(this, new FindListener() {

@Override

public void onSuccess(List losts) {

…..

//将结果显示在列表中

LostAdapter.addAll(losts);

…..

}

@Override

public void onError(int code, String arg0) {

showErrorView(0);

}

});

删除失物/招领信息

Bmob云数据库对每条新增的数据都有一个唯一标识(objectId),这类似于传统SQL数据库中的唯一主键的性质。从云数据库中删除某条记录需要设置这个要删除的ObjectId的信息,再调用模型类的deleteObject方法就可以了,实现代码如下(详细代码实现参看MainActivity类的deleteLost方法):Lost lost = new Lost();

//设置ObjectId信息

lost.setObjectId(LostAdapter.getItem(position).getObjectId());

//执行删除方法,第一个参数为上下文,第二个参数为删除的回调

lost.delete(this, new DeleteListener() {

@Override

public void onSuccess() {

//删除成功

LostAdapter.remove(position);

}

@Override

public void onFailure(int code, String arg0) {

//删除失败

}

});

后记

本案例只是演示如何用Bmob进行快速的数据增删改查,在真实的应用环境下,你还可能还需要使用到用户系统、文件服务、更复杂的数据结构和服务,这些都可以使用Bmob就可以实现。如果想要获取更多的信息,请各位查看Bmob的开发文档或者联系技术客服。欢迎砸砖,欢迎提出更多的意见和建议帮助Bmob更好的发展。谢谢~

案例下载

上传文件案例教程

上传文件需求描述

相对于移动网络和数据服务而言,文件服务往往需要更长的i/o时间,因此也就涉及到更多的异步操作的问题。不少朋友在用到Bmob文件服务的时候出错,原因就是没有充分理解同步和异步的本质。为方便大家理解Bmob的文件服务,这里提供一个上传文件的案例,从如何往一个只有一列文件字段的表中插入一条或者多条,到如何往一个有两列甚至多列文件字段的表中插入一条或者多条数据进行详细阐述。

案例的界面效果如下:

c3056d912d2b1b48fecbacaad89230e1.png

发送反馈截图

fc7fa22aa433b74e091c4c1f49fbc0e8.png

查看反馈意见截图

反馈案例数据结构设计

在Bmob开发者后台创建一个应用(还不知道怎么创建应用和添加数据表的开发朋友请先移步快速入门指南查看相关教程),添加两个表,分别是Feedback(用户反馈信息表,存储用户提交的反馈信息)和Installation(设备安装表,存储需要接收推送信息的设备信息)。以下是对这两个表的数据结构的详细描述(省略对常用默认字段objectId、createAt、updateAt的描述)Feedback表

字段名类型描述

ContactString用户的联系方式

deviceTypeString系统字段,是一个必须的字段, 必须被设置为 “ios” 或者 “android”, 而且自这个对象生成以后就不能变化

Installation表

字段名类型描述

installationIdString系统字段,是一个Bmob生成的字符串标志, 而且如果 deviceType 是 android 的话是一个必填字段, 如果是 ios 的话则可选. 它只要对象被生成了就不能发生改变, 而且对一个 app 来说是不可重复的

deviceTokenString系统字段,是一个 Apple 生成的字符串标志, 在 deviceType 为 ios 上的设备是必须的, 而且自对象生成开始就不能改动, 对于一个 app 来说也是不可重复的

badgeNumber系统字段,表示iOS 设备最新已知的应用badge

timeZoneString系统字段,表示安装的这个设备的系统时区

channelsArray系统字段,表示这个安装对象的订阅频道列表

appIdentifiterStringiOS应用的Bundle identifier

isDeveloperBoolean是否是开发者(是的话则用于接收推送信息)

安装和初始化

还不知道怎么安装使用Bmob数据存储Sdk的开发朋友请先移步快速入门指南查看相关教程。

推送服务的SDK初始化和Bmob数据存储SDK一样,只需要在Activity的onCreate方法中简单调用BmobPush.startWork方法就可以了,代码如下(详细代码见MainActivity类)://这里替换为你的APP Key

public static String APPID = “”;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Bmob.initialize(this, APPID);

BmobPush.startWork(this, APPID);

}

发送反馈功能的开发

这里要实现的是当用户点击“发送”反馈按钮之后,先把用户的反馈信息上传到Bmob云数据库中,然后发送一条推送信息到Installation表中isDeveloper为true的设备中去。

为实现将数据保存到云数据库的功能,你首先需要先创建一个Feedback类(需要与刚刚创建的数据表Feedback名称对应一致),该类继承自BmobObject类,实现contact和content的set和get方法。实现代码如下(详细代码见Feedback类):public class Feedback extends BmobObject {

//反馈内容

private String content;

//联系方式

private String contacts;

public String getContent() {

return content;

}

public void setContent(String content) {

this.content = content;

}

public String getContacts() {

return contacts;

}

public void setContacts(String contacts) {

this.contacts = contacts;

}

}

有了Feedback类,你就可以方便的通过BmobObject的insertObject方法操作云数据库,将数据保存上去了。实现代码如下(详细代码见ActSendFeedback类):/**

* 保存反馈信息到Bmob云数据库中

* @param msg 反馈信息

*/

private void saveFeedbackMsg(String msg){

Feedback feedback = new Feedback();

feedback.setContent(msg);

feedback.save(this, new SaveListener() {

@Override

public void onSuccess() {

Log.i(“bmob”, “反馈信息已保存到服务器”);

//发送推送信息

saveFeedbackMsg(message);

}

@Override

public void onFailure(int code, String arg0) {

// TODO Auto-generated method stub

Log.e(“bmob”, “保存反馈信息失败:”+arg0);

}

});

}

/**

* 推送反馈信息给isDeveloper的设备

* @param message 反馈信息

*/

private void sendMessage(String message){

BmobPushManager bmobPush = new BmobPushManager(this);

BmobQuery query = BmobInstallation.getQuery();

query.addWhereEqualTo(“isDeveloper”, true);

bmobPush.setQuery(query);

bmobPush.pushMessage(message);

}

查看反馈功能的开发

为了接收用户端推送过来的反馈信息,查看反馈端需要自定义一个继承自BmobPushMessageReceiver的类,用于处理接收到的推送信息。实现代码如下:public class MyMessageReceiver extends BmobPushMessageReceiver {

@Override

public void onMessage(Context context, String message) {

Log.d(“bmob”, “收到反馈消息 = “+message);

//通知栏显示收到的反馈信息

NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

Notification n = new Notification();

n.icon = R.drawable.ic_launcher;

n.tickerText = “收到反馈消息”;

n.when = System.currentTimeMillis();

Intent intent = new Intent(context, ActFeedbackList.class);

PendingIntent pi = PendingIntent.getActivity(context, 0, intent, 0);

n.setLatestEventInfo(context, “消息”, message, pi);

n.defaults |= Notification.DEFAULT_SOUND;

n.flags = Notification.FLAG_AUTO_CANCEL;

nm.notify(1, n);

}

}

查看反馈列表的功能实现也很简单,只需要调用BmobObject的findObjects方法就可以了,实现代码如下(详细代码见ActFeedbackList类):BmobQuery query = new BmobQuery();

//按createAt降序排列

query.order(“-createdAt”);

query.findObjects(this, new FindListener() {

@Override

public void onSuccess(List arg0) {

//显示反馈列表信息

adapter = new FeedbackAdapter(ActFeedbackList.this, arg0);

listView.setAdapter(adapter);

}

@Override

public void onError(int code, String arg0) {

emptyView.setText(arg0);

}

});

反馈案例后记

当然了,实际使用过程的反馈功能可能并没有那么简单,或许你需要实现能够直接跟用户对话的反馈功能,或许你想要实现智能化的机器回答,这些都可以使用Bmob移动云服务平台进行快速设计和开发的。欢迎各位砸砖,欢迎提出更多的意见和建议帮助Bmob更好的发展。谢谢~

反馈案例案例下载

来源:诚身

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月23日
下一篇 2021年1月23日

相关推荐