作为一个开发者,数据的存储,用户的登陆,验证等操作,对程序来说是必不可少的,下面我们将从Bmob的基本信息开始讲起:

【Bmob】

官网:   http://www.bmob.cn/

帮助文档:http://www.bmob.cn/site/getdocs

基本操作:http://docs.bmob.cn/android/faststart/index.html?menukey=fast_start&key=start_android

SDK下载: http://www.bmob.cn/site/sdk

【用户的基本操作】

Ⅰ用户注册:

用户注册的表有两种,一种继承BmobUser,一种继承BmobObject,但是大部分作为用户的注册使用的一般是BmobUser

JavaBean代码:

public class Students extends BmobUser {
private int age;
private String address; public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} public int getAge() { return age;
} public void setAge(int age) {
this.age = age;
}
}

实现方法:

private void showRegist() {
//用户注册的方法
String userName=edt_user.getText().toString();
String password=edt_password.getText().toString();
Students stu=new Students();
stu.setUsername(userName); //Username以及Password为Bmob中的User表,此表字段已经存在,故不可在javaBean中进行创建
stu.setPassword(password);
stu.setAge(21);
stu.setEmail("linfanrong235@163.com"); //测试使用,邮箱验证的功能
stu.setAddress("滨州");
/*
*用户注册的提交
*/
stu.signUp(MainActivity.this,new SaveListener() {
@Override
public void onSuccess() {
Toast.makeText(MainActivity.this,"注册成功",Toast.LENGTH_SHORT).show();
} @Override
public void onFailure(int i, String s) {
Toast.makeText(MainActivity.this,"注册失败"+s,Toast.LENGTH_SHORT).show();
}
});
}

后台数据库:

Ⅱ用户登录:

private void showSubmit() {
//用户登录的方法
String userName=edt_user.getText().toString();
String password=edt_password.getText().toString();
final BmobUser user=new BmobUser();//创建对象,这个为Bmob创建的类
//与数据库中的信息进行比对,成功返回成功,失败返回失败的信息
user.setUsername(userName);
user.setPassword(password);
/*
*用户登录
*/
user.login(MainActivity.this,new SaveListener() {
@Override
public void onSuccess() {
if(user.getEmailVerified())
{
Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show();
}else{
//邮箱未验证
}
} @Override
public void onFailure(int i, String s) {
Toast.makeText(MainActivity.this,"登录失败"+s,Toast.LENGTH_SHORT).show();
}
});
}
}

Ⅲ更新用户数据

private void showUpdate() {
//用户更新的方法
Students stu=BmobUser.getCurrentUser(MainActivity.this,Students.class);
stu.setAddress("临沂");
stu.setAge(25);
stu.update(MainActivity.this,"5c8095e99b",new UpdateListener() {
@Override
public void onSuccess() {
Toast.makeText(MainActivity.this,"更新成功",Toast.LENGTH_SHORT).show();
} @Override
public void onFailure(int i, String s) {
Toast.makeText(MainActivity.this,"更新失败"+s,Toast.LENGTH_SHORT).show();
}
});
}

Ⅳ修改密码

private void showRepassword() {
//修改密码的方法
final String email="876948462@qq.com";
BmobUser.resetPassword(MainActivity.this,email,new ResetPasswordListener() {
@Override
public void onSuccess() {
Toast.makeText(MainActivity.this,"修改密码,请到"+email,Toast.LENGTH_SHORT).show();
} @Override
public void onFailure(int i, String s) {
Toast.makeText(MainActivity.this,"重置密码失败",Toast.LENGTH_SHORT).show();
}
});
}

ps:此时系统会默认向你输入的邮箱发送修改密码的邮件
-----------------------------------------------------------------------------------------------------------------------------------

【图片操作】

Ⅴ上传图片

private void submit() {
//上传图片
String path="sdcard/Download/shareone.jpg";
final BmobFile file=new BmobFile(new File(path)); //创建BmobFile对象,转换为Bmob对象
file.upload(MainActivity.this,new UploadFileListener() {
@Override
public void onSuccess() {
share share=new share();
share.setName("ShareOne");
share.setAge(20);
share.setIcon(file); //设置图片
share.save(MainActivity.this,new SaveListener() {
@Override
public void onSuccess() {
Toast.makeText(MainActivity.this,"上传成功",Toast.LENGTH_LONG).show();
} @Override
public void onFailure(int i, String s) {
Toast.makeText(MainActivity.this,"上传失败"+s,Toast.LENGTH_LONG).show(); }
});
}

javaBean类:

public class share extends BmobObject {
private String name;
private int age;
private BmobFile icon; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public BmobFile getIcon() {
return icon;
} public void setIcon(BmobFile icon) {
this.icon = icon;
}
}

后台显示:

Ⅵ下载图片

private void download() {
//下载图片
BmobQuery<share> query=new BmobQuery<share>();
query.getObject(MainActivity.this,"f4514dcb9d",new GetListener<share>() {
@Override
public void onSuccess(share share) {
BmobFile icon=share.getIcon();
icon.loadImage(MainActivity.this,image);
} @Override
public void onFailure(int i, String s) { }
});
}

Ⅶ加载图片缩略图

private void load() {
//加载缩略图
BmobQuery<share> query_load=new BmobQuery<share>();
query_load.getObject(MainActivity.this,"f4514dcb9d",new GetListener<share>() {
@Override
public void onSuccess(share share) {
BmobFile icon=share.getIcon();
icon.loadImageThumbnail(MainActivity.this,load_show,100,100);
} @Override
public void onFailure(int i, String s) { }
});
}

-------------------------------------------------------------------------------------------------------

【数据操作】

JavaBean类:

public class FootBaller extends BmobObject {
private String name;
private int age;
private int score; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public int getScore() {
return score;
} public void setScore(int score) {
this.score = score;
}
}

Ⅷ增加数据

private void showCreate() {
FootBaller fb=new FootBaller();
fb.setName("monster");
fb.setAge(20);
fb.setScore(100);
fb.save(MainActivity.this,new SaveListener() {
@Override
public void onSuccess() {
Toast.makeText(MainActivity.this,"创建成功",Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int i, String s) {
Toast.makeText(MainActivity.this,"创建失败"+s,Toast.LENGTH_SHORT).show();
}
});
}

Ⅸ更新数据

private void update() {
FootBaller fb=new FootBaller();
fb.setName("MonsterLin");
fb.setScore(80);
fb.setAge(26);
fb.update(MainActivity.this, "ed8f8bdd14", new UpdateListener() {
@Override
public void onSuccess() {
Toast.makeText(MainActivity.this, "更新成功", Toast.LENGTH_SHORT).show();
} @Override
public void onFailure(int i, String s) {
Toast.makeText(MainActivity.this, "创建失败" + s, Toast.LENGTH_SHORT).show();
}
});
}

Ⅹ删除数据

private void delete() {
FootBaller fb=new FootBaller();
fb.setObjectId("7a01c65384"); //删除对应的ObjectId
fb.delete(MainActivity.this,new DeleteListener() {
@Override
public void onSuccess() {
Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show();
} @Override
public void onFailure(int i, String s) {
Toast.makeText(MainActivity.this, "删除失败", Toast.LENGTH_SHORT).show();
}
});
}

Ⅺ查询数据

private void query() {
BmobQuery<FootBaller> query=new BmobQuery<FootBaller>();
query.addWhereEqualTo("name","monster");
query.findObjects(MainActivity.this,new FindListener<FootBaller>() {
@Override
public void onSuccess(List<FootBaller> footBallers) {
for (FootBaller fb:footBallers)
{
Toast.makeText(MainActivity.this, "查询数据成功"+fb.getName()+"---"+fb.getScore(), Toast.LENGTH_SHORT).show();
}
} @Override
public void onError(int i, String s) {
Toast.makeText(MainActivity.this, "查询失败"+s, Toast.LENGTH_SHORT).show();
}
});
}

【邮箱验证】

邮箱验证参考【用户注册】板块,邮箱验证需要在你对应的Bmob下开启邮箱验证的服务

【图片和数据上传】

上传的时候应该先上传图片,然后再此基础上上传数据信息

eg:

final BmobFile file=new BmobFile(new File(mCurrentPhotoStr));//将图片路径转为BmobFile

			final WalkerUser walkerUser=new WalkerUser();

			file.uploadblock(this, new UploadFileListener() {

				@Override
public void onSuccess() {
//上传成功
//Log.e("TAG", "上传文件成功"); walkerUser.setUsername(userName);
walkerUser.setPassword(pass);
walkerUser.setEmail(email); walkerUser.setMotto(motto);
walkerUser.setCity(city); walkerUser.setUserHeight(height);
walkerUser.setUserWeight(weight);
walkerUser.setStepLength(stepLength);
walkerUser.setUserFeatherSport(userFeatherSport);
walkerUser.setUserPhoto(file);
walkerUser.signUp(Regist.this, new SaveListener() { @Override
public void onSuccess() {
//数据上传成功
//Log.e("--->", "数据上传成功");
Toast.makeText(Regist.this, "欢迎加入Walker的大家庭",Toast.LENGTH_SHORT).show();
} @Override
public void onFailure(int i, String s) {
//数据上传失败
//Log.e("--->", "数据上传失败"+s);
Toast.makeText(Regist.this, "注册失败",Toast.LENGTH_SHORT).show();
}
});
} @Override
public void onFailure(int i, String error) {
Log.e("****--->>>","文件上传失败"+error);
}
});

------------------------------------------------------------------------------------------------------

【小编有话说】

1.Bmob的初始化建议:

public class BaseActivity extends Activity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState); // 初始化BmobSDK
Bmob.initialize(this, "Application ID");

然后书写的类继承BaseActivity

2.注意BmobUser与BmobObject的使用:BmobUser的使用的时候,由于这张表作为系统表,所以已经存在的字段不允许自己重复定义,否则会出现编译不通过;BmobObject的表用户可以自定任意定义字段

3.在使用Bmob的使用需要加载SDK以及配置清单文件,具体操作:http://docs.bmob.cn/android/faststart/index.html?menukey=fast_start&key=start_android#index_%E5%AE%89%E8%A3%85BmobSDK

4.后续持续跟新…..

最新文章

  1. BZOJ 4551: [Tjoi2016&amp;Heoi2016]树
  2. jQuery ajax 返回的数据类型
  3. 樱花漫地集于我心,蝶舞纷飞祈愿相随 训练:a preparation 训练:a preparation
  4. Unity3d Static 静态批处理和动态批处理
  5. linux下,一些关于动态库的问题:
  6. WPF 策略模式
  7. 序列化、反序列化和transient关键字的作用
  8. iOS开发——屏幕适配篇&amp;Masonry详解
  9. 爬虫技术实战 | WooYun知识库
  10. word-wrap,white-space和text-overflow属性
  11. servlet多线程问题
  12. [方案]基于Zynq WiFi方案构建
  13. 考前停课集训 Day5 累
  14. 设计模式-行为型模式,python 中介者模式
  15. Jmeter(三十九)获取响应结果中参数出现的次数(转载)
  16. Zookeeper笔记之quota
  17. web服务端安全之文件上传漏洞
  18. 【laravel5.4】自定义404、503等页面
  19. 《Python核心编程》第五章:数字
  20. selenium层级定位及鼠标键盘操作

热门文章

  1. ListView实现原理
  2. 80端口未占用,apache无法启动解决办法
  3. opencv6.2-imgproc图像处理模块之图像尺寸上的操作及阈值
  4. 移动端打印调试插件 - debug.js 介绍
  5. 用 Linux自带的logrotate 来管理日志
  6. js的单引号,双引号,转移符
  7. [POJ2104]K-th Number
  8. 将Microsoft Ajax Minifier集成到VS2013对JS、CSS进行编译时压缩
  9. python学习笔记整理——dictView [未整理]
  10. 【Alpha版本】冲刺阶段——Day 4