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个
5星 · 超过95%的资源 需积分: 9 96 下载量 79 浏览量
2016-08-01
13:53:16
上传
评论 2
收藏 265KB RAR 举报
温馨提示
Realm,一种新型的嵌入式数据库,android平台使用,性能和操作都比SQLite优秀。原文地址:http://blog.csdn.net/fesdgasdgasdg/article/details/51897212;此资源是原文对应的demo。之前上传过一份demo,由于含有缓存文件包太大。此份无缓存文件。
资源推荐
资源详情
资源评论
收起资源包目录
Realm_test_clean.rar (58个子文件)
Realm_test
gradlew.bat 2KB
gradlew 5KB
gradle.properties 872B
.gradle
2.10
taskArtifacts
fileHashes.bin 253KB
cache.properties.lock 17B
taskArtifacts.bin 169KB
fileSnapshots.bin 4.22MB
cache.properties 31B
outputFileStates.bin 22KB
app
proguard-rules.pro 668B
src
test
java
com
duke
realm_test
ExampleUnitTest.java 326B
androidTest
java
com
duke
realm_test
ApplicationTest.java 362B
main
res
mipmap-xxxhdpi
ic_launcher.png 10KB
drawable
mipmap-hdpi
ic_launcher.png 3KB
values
colors.xml 214B
strings.xml 76B
styles.xml 394B
dimens.xml 216B
mipmap-xxhdpi
ic_launcher.png 8KB
mipmap-mdpi
ic_launcher.png 2KB
mipmap-xhdpi
ic_launcher.png 5KB
layout
activity_main.xml 2KB
values-w820dp
dimens.xml 364B
java
com
duke
realm_test
model
BaseDao.java 6KB
UserDao.java 4KB
bean
TestUser.java 2KB
view
MainActivity.java 4KB
MyApplication.java 725B
AndroidManifest.xml 727B
app.iml 11KB
.gitignore 8B
build.gradle 675B
libs
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 231B
.idea
gradle.xml 819B
runConfigurations.xml 564B
misc.xml 882B
.name 10B
copyright
profiles_settings.xml 76B
modules.xml 357B
encodings.xml 159B
compiler.xml 686B
workspace.xml 133KB
libraries
realm_android_library_1_1_0.xml 637B
support_vector_drawable_23_4_0.xml 647B
relinker_1_2_1.xml 620B
support_annotations_23_4_0.xml 509B
realm_annotations_1_1_0.xml 347B
hamcrest_core_1_3.xml 526B
junit_4_12.xml 477B
appcompat_v7_23_4_0.xml 592B
animated_vector_drawable_23_4_0.xml 652B
support_v4_23_4_0.xml 736B
.gitignore 105B
local.properties 465B
settings.gradle 16B
Realm_test.iml 964B
build.gradle 575B
共 58 条
- 1
资源评论
- OUDBL2018-08-10写的比较简单还行吧
- Justin_Chiang2017-09-09还有Realm数据库,研究
- bigbigbuffer2016-09-03还有Realm数据库,研究
android阿杜
- 粉丝: 417
- 资源: 32
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功