最近在做一个简单的手机工作计划程序,其中的数据部分使用了Leancloud提供的数据存储功能。整理下其中的一些代码,同大家分享一下。
部分代码如下所示:
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); }
/*** * 根据id查询记录 */
private static void getProject(String id, GetCallback callback) {
AVQuery<AVObject> query = new AVQuery<AVObject>(TABLENAME);
query.getInBackground(id, callback);
}
/*** * 得到多条记录,按照创建时间排序 */
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);
}
});
}
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);
}
除了普通对象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) {
//逻辑处理
}
});
}
/*** * 登录 */
public static void Login(String account, String password) {
AVUser.logInInBackground(account, password, new LogInCallback<AVUser>() {
@Override
public void done(AVUser user, AVException e) {
//逻辑处理
}
});
}
/*** * 得到当前用户 * * @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) {
//逻辑处理
}
});
}
}