您的位置:首页 > 其它

Leancloud-数据存储功能入门

2015-10-15 19:28 519 查看



AVObject


增加一条记录

部分代码如下所示:
private static final String TABLENAME = "Project";
//新建一条记录,数据库表名为Project
public static void createProject(String name) {
final AVObject object = new AVObject(TABLENAME);
object.put("name", name);
object.put("createdate", new Date().getTime());
object.put("createaccount", user.getUsername());
object.put("createname", user.getString("name"));
object.put("membernum", 0);
object.put("tasknum", 0);
object.put("state", 1);
SaveCallback callback = new SaveCallback() {
@Override
public void done(AVException e) {
postInfo(object, e);
}
};
saveProject(object, callback);
}


该条记录会出现在Project表中
SaveCallback 为保存成功之后的异步回调, 当done(AVException e) 中的e为null时,表示保存成功


查询一条记录

/***
* 根据id查询记录
*/
private static void getProject(String id, GetCallback callback) {
AVQuery<AVObject> query = new AVQuery<AVObject>(TABLENAME);
query.getInBackground(id, callback);
}


GetCallback 为查询成功后的异步回调,需要实现的方法为done(AVObject avObject, AVException e)


查询多条记录

/***
* 得到多条记录,按照创建时间排序
*/
public static void getAllProject() {
AVQuery<AVObject> query = new AVQuery<>(TABLENAME);
query.orderByDescending("createAt");
query.findInBackground(new FindCallback<AVObject>() {
@Override
public void done(List<AVObject> list, AVException e) {
postInfoList(list, e);
}
});
}


FindCallback为查询成功后的异步回调,需要实现的方法为done(List< AVObject > list, AVException e)


修改单条记录

public static void addTasknum(String id) {
GetCallback getCallback = new GetCallback<AVObject>() {
@Override
public void done(final AVObject avObject, AVException e) {
if (e == null) {
avObject.put("tasknum", avObject.getInt("tasknum") + 1);
SaveCallback saveCallback = new SaveCallback() {
@Override
public void done(AVException e) {
if (e != null) {
//异常处理
}
}
};
//更新后获取最新值
avObject.setFetchWhenSave(true);
avObject.saveInBackground(saveCallback);
} else {
//异常处理
}
}
};
getProject(id, getCallback);
}


先根据id查询得到单条记录对象
更新该对象的某个数值,随后保存,SaveCallback 为保存成功之后的异步回调
avObject.setFetchWhenSave(true);表示当更新成功后,avObject的各个字段为最新值


AVUser

除了普通对象AVObject以外,还提供了AVUser对象,用以实现简单的用户系统,额外的功能如下所示


注册

/***
* 创建一个用户账户
*/
public static void createUser(final String account, final String password, String Email, String name) {
final AVUser user = new AVUser();
user.setUsername(account);
user.setPassword(password);
user.setEmail(Email);
user.put("name", name);
user.signUpInBackground(new SignUpCallback() {
public void done(AVException e) {
//逻辑处理
}
});
}


AVUser支持的信息除了自定义的字段外,还有Username(帐号)、Password(密码)和Email(邮箱)
SignUpCallback为注册成功之后的异步回调操作


登录

/***
* 登录
*/
public static void Login(String account, String password) {
AVUser.logInInBackground(account, password, new LogInCallback<AVUser>() {
@Override
public void done(AVUser user, AVException e) {
//逻辑处理
}
});
}


LogInCallback为登录成功的异步回调
account、password分别对应用户的帐号和密码


得到当前登录的用户对象

/***
* 得到当前用户
*
* @return 当前用户
*/
public static AVUser getCurrentUser() {
AVUser currentUser = AVUser.getCurrentUser();
return currentUser;
}


注销

public static void logOut() {
AVUser.logOut();
}


修改密码

/***
* 修改密码
*/
public static void changePwd(String old_password, String new_password) {
AVUser user = getCurrentUser();
if (user != null) {
user.updatePasswordInBackground(old_password, new_password, new UpdatePasswordCallback() {
@Override
public void done(AVException e) {
//逻辑处理
}
});
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: