作為一個開發者,數據的存儲,用戶的登陸,驗證等操作,對程序來說是必不可少的,下面我們將從Bmob的基本信息開始講起:
【Bmob】
幫助文檔: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.后續持續跟新…..




