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) { //逻辑处理 } }); } }
相关文章推荐
- 解决eclipse中org.w3c.dom.Node类老报The method getTextContent() is undefined 问题
- 哲理故事三百篇
- Android资源管理框架(Asset Manager)简要介绍(转自老罗博客)
- 【HAOI2015】【BZOJ4033】T1树上染色
- iOS开发总结之代码规范
- oj 小黑熊偷玉米
- I题 - A+B for Input-Output Practice (VIII)
- HDU2030 汉字统计
- HDU2030 汉字统计
- Spring之IOC和AOP
- 二叉树
- Kafka项目实践
- android关于AndroidManifest.xml详细分析
- 使用simhash库来进行网页去重
- Murano Weekly Meeting 2015.10.13
- vsPhere安装虚拟sm
- Lua文件加密
- 为什么建议使用link方式来加载css,而不是使用@import方式
- python基础课程_学习笔记13:标准库:有些收藏夹——sys
- Windows server 2012 R2开机进入cmd,关闭后黑屏问题。