package com.duke.realm_test.model;
import org.json.JSONArray;
import java.util.List;
import io.realm.Realm;
import io.realm.RealmObject;
import io.realm.RealmResults;
/**
* @DateTime: 2016-07-13 09:33
* @Author: duke
* @Deacription: dao
*/
public class BaseDao {
private Realm realm;
public BaseDao(Realm realm) {
this.realm = realm;
}
/**
* 添加(性能优于下面的saveOrUpdate()方法)
*
* @param object
* @return 保存或者修改是否成功
*/
public boolean insert(RealmObject object) {
try {
realm.beginTransaction();
realm.insert(object);
realm.commitTransaction();
return true;
} catch (Exception e) {
e.printStackTrace();
realm.cancelTransaction();
return false;
}
}
/**
* 添加(性能优于下面的saveOrUpdateBatch()方法)
*
* @param list
* @return 批量保存是否成功
*/
public boolean insert(List<? extends RealmObject> list) {
try {
realm.beginTransaction();
realm.insert(list);
realm.commitTransaction();
return true;
} catch (Exception e) {
e.printStackTrace();
realm.cancelTransaction();
return false;
}
}
/**
* 添加或者修改(性能优于下面的saveOrUpdate()方法)
*
* @param object
* @return 保存或者修改是否成功
*/
public boolean insertOrUpdate(RealmObject object) {
try {
realm.beginTransaction();
realm.insertOrUpdate(object);
realm.commitTransaction();
return true;
} catch (Exception e) {
e.printStackTrace();
realm.cancelTransaction();
return false;
}
}
/**
* 添加或者修改(性能优于下面的saveOrUpdateBatch()方法)
*
* @param list
* @return 保存或者修改是否成功
*/
public boolean insertOrUpdateBatch(List<? extends RealmObject> list) {
try {
realm.beginTransaction();
realm.insertOrUpdate(list);
realm.commitTransaction();
return true;
} catch (Exception e) {
e.printStackTrace();
realm.cancelTransaction();
return false;
}
}
/**
* 添加或者修改
*
* @param object
* @return 已经保存的对象
*/
public <E extends RealmObject> E saveOrUpdate(E object) {
E savedE = null;
try {
realm.beginTransaction();
savedE = realm.copyToRealmOrUpdate(object);
realm.commitTransaction();
return savedE;
} catch (Exception e) {
e.printStackTrace();
realm.cancelTransaction();
return savedE;
}
}
/**
* 批量添加或者修改
*
* @param list
* @return 全部保存成功 或 全部失败
*/
public boolean saveOrUpdateBatch(List<? extends RealmObject> list) {
try {
realm.beginTransaction();
realm.copyToRealmOrUpdate(list);
realm.commitTransaction();
return true;
} catch (Exception e) {
e.printStackTrace();
realm.cancelTransaction();
return false;
}
}
/**
* save or update RealmObject from json data
*
* @param jsonObject json数据
* @param clazz 具体类型
* @return 已经保存的对象
*/
public RealmObject saveOrUpdateFromJSON(Class<? extends RealmObject> clazz, String jsonObject) {
RealmObject RealmObject = null;
try {
realm.beginTransaction();
RealmObject = realm.createOrUpdateObjectFromJson(clazz, jsonObject);
realm.commitTransaction();
return RealmObject;
} catch (Exception e) {
e.printStackTrace();
realm.cancelTransaction();
return RealmObject;
}
}
/**
* batch save or update from json array
*
* @param json json数组
* @param clazz 类型
* @return 批量保存json对象是否成功
*/
public boolean saveOrUpdateFromJSONBatch(Class<? extends RealmObject> clazz,JSONArray json) {
try {
realm.beginTransaction();
realm.createOrUpdateAllFromJson(clazz, json);
realm.commitTransaction();
return true;
} catch (Exception e) {
e.printStackTrace();
realm.cancelTransaction();
return false;
}
}
/**
* 删除当前表中所有数据
*
* @param clazz
* @return
*/
public boolean deleteAll(Class<? extends RealmObject> clazz) {
try {
realm.beginTransaction();
realm.delete(clazz);
realm.commitTransaction();
return true;
} catch (Exception e) {
e.printStackTrace();
realm.cancelTransaction();
return false;
}
}
/**
* 按照id删除制定的记录
* @param clazz 类型
* @param idFieldName id字段的名称
* @param id id字段值
* @return
*/
public boolean deleteById(Class<? extends RealmObject> clazz,String idFieldName,int id) {
try {
realm.beginTransaction();
realm.where(clazz).equalTo(idFieldName, id).findAll().deleteFirstFromRealm();
realm.commitTransaction();
return true;
} catch (Exception e) {
e.printStackTrace();
realm.cancelTransaction();
return false;
}
}
/**
* 查询所有
* @return 返回结果集合
*/
public RealmResults<? extends RealmObject> findAll(Class<? extends RealmObject> clazz) {
return realm.where(clazz).findAll();
}
/**
* 清空数据库
*
* @return
*/
public boolean clearDatabase() {
try {
realm.beginTransaction();
realm.deleteAll();
realm.commitTransaction();
return true;
} catch (Exception e) {
e.printStackTrace();
realm.cancelTransaction();
return false;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android Realm数据库demo_无缓存

共58个文件
xml:25个
java:7个
png:5个


温馨提示
Realm,一种新型的嵌入式数据库,android平台使用,性能和操作都比SQLite优秀。原文地址:http://blog.csdn.net/fesdgasdgasdg/article/details/51897212;此资源是原文对应的demo。之前上传过一份demo,由于含有缓存文件包太大。此份无缓存文件。
资源推荐
资源详情
资源评论


























收起资源包目录



































































































共 58 条
- 1
资源评论

- OUDBL2018-08-10写的比较简单还行吧
- Justin_Chiang2017-09-09还有Realm数据库,研究
- bigbigbuffer2016-09-03还有Realm数据库,研究

Android阿杜
- 粉丝: 481
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 工程项目管理方法的核心方法.docx
- 计算机网络技术与应用试题库.doc
- 计算机三级(网络技术)笔试275.pdf
- 电子商务产业园项目可行性研究报告.doc
- 基于YOLOv8深度学习的磁瓦表面缺陷自动化检测:实验结果与效率分析 · YOLOv8 v2.1
- 计算机网络专业学生实习报告范文.doc
- 情侣装网络营销策划方案样本.doc
- 医药电商市场现状和发展态势互联网事业部培训.ppt
- 基于HTML5的响应式网站的设计与实现论文正文.docx
- 会展策划第七章第一节会展项目管理的基本理论ppt课件.ppt
- 系统集成项目管理工程师复习小结.doc
- 内河水运建设项目管理指标体系及信息系统开发设想.doc
- 因特网信息交流与网络安全教学设计(整理).pdf
- 虚拟化项目验收报告模板.docx
- 最新国家开放大学电大《优秀广告作品评析(专)》网络核心课形考网考作业及答案.pdf
- 综合布线设计的若干要点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
