Realm数据库的简单使用
来源:互联网 发布:jquery ajax json解析 编辑:程序博客网 时间:2024/05/22 13:58
今天就来说说Realm在开发中的坑吧,虽然用起来好用,但是还是有很多坑,等着大家往下跳。
第一:配置问题
在工程的build文件中配置如下:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath "io.realm:realm-gradle-plugin:3.3.2" }}
在app的build文件中,配置如下:
apply plugin: 'realm-android'
第二、创建和初始化
(1)、使用RealmConfiguration配置Realm
创建数据库时首先需要调用Realm.init()方法,否则系统报错:Java.lang.IllegalStateException: Call Realm.init(Context)
before creating a RealmConfiguration
数据库初始化主要工作是什么数据库的name(设置数据库的文件名称)、schemaVersion(设置当前数据库版本号,当前版本号不能小于历史版本号)、migration(数据库版本迁移)、 deleteRealmIfMigrationNeeded(版本冲突时删除原始数据库)、inMemory(在内存中持久化,关闭后自动删除)、build(创建数据库)。
public static Realm getRealm(Context context){ byte[] key = new byte[64]; new SecureRandom().nextBytes(key); Realm.init(context); Migration migration = new Migration(); RealmConfiguration config = new RealmConfiguration.Builder() .name("realmdb.realm") //文件名 .schemaVersion(0) //版本号 .migration(migration)//数据库版本迁移(数据库升级,当数据库中某个表添加字段或者删除字段) .deleteRealmIfMigrationNeeded()//声明版本冲突时自动删除原数据库(当调用了该方法时,上面的方法将失效)。 .build();//创建 return Realm.getInstance(config);}
执行该方法后将生成一个文件名为:realmdb.realm的数据库文件。
(2)使用默认配置
Realm.init(this); Realm mRealm = Realm.getDefaultInstance(); 使用默认配置将生成一个名为default.realm数据库文件 note:记得使用完后,在onDestroy中关闭Realm @Override protected void onDestroy() { super.onDestroy(); // Close the Realm instance. realm.close(); }
第三、创建具体的model
1、支持的数据类型:
boolean, byte, short, int, long, float, double, String, Date and byte[]
在Realm中byte, short, int, long最终都被映射成long类型
2、注解说明
@PrimaryKey
①字段必须是String、 integer、byte、short、 int、long 以及它们的封装类Byte, Short, Integer, and Long
②使用了该注解之后可以使用copyToRealmOrUpdate()方法,通过主键查询它的对象,如果查询到了,则更新它,否则新建一个对象来代替。
③使用了该注解将默认设置(@index)注解
④使用了该注解之后,创建和更新数据将会慢一点,查询数据会快一点。
@Required
数据不能为null
@Ignore
忽略,即该字段不被存储到本地
@Index
为这个字段添加一个搜索引擎,这将使插入数据变慢、数据增大,但是查询会变快。建议在需要优化读取性能的情况下使用。
第四、相关的操作
具体的操作代码这里就不写,网上一大堆,给大家推荐一篇吧
如连接:创建Model,增删改查的相关操作
http://www.jianshu.com/p/37af717761cc
第五、遇到的问题
创建好的model,作为数据库的表,写入数据库之后,这时候你查出来的数据,如果要对查出的数据做修改,必须重新复制一份,在对复制的这一份处理之后,更新数据库,因为你查出来的数据,数据是没办法修改的,
看看这个链接:
http://blog.csdn.net/qq_21430549/article/details/53148208
这个链接相信对大家有所帮助的,
通过这篇文章,希望大家少走一些弯路。
- Realm 数据库的简单使用
- Realm数据库的简单使用
- 数据库Realm的使用
- Swift-Realm简单使用,代替Sqlite、Crodata的强大数据库
- Android Realm数据库的使用
- IOS Realm数据库的使用
- 数据库简单使用之Realm入门
- Realm 数据库的使用(iOS &Android)
- Realm数据库框架的使用例子
- [Android] 好用的数据库Realm 简单使用 增删改查
- Realm简单使用
- Realm使用简单介绍
- realm简单使用
- Realm 简单使用
- Realm数据库使用
- Android Realm数据库使用
- Realm数据库框架使用
- Realm数据库使用总结
- python——numpy包的一些功能笔记
- hpu暑期训练:E
- ant的安装和环境配置
- this关键字
- 【bzoj3280】小R的烦恼
- Realm数据库的简单使用
- acm Array
- qt creator 切换到界面语言(切换到英语)
- Java 并发专题 :闭锁 CountDownLatch
- HDU 2017 多校联赛 1011 KazaQ's Socks
- 计算整型数组中的最大值
- Javascript学习小结(1)
- 在windows 7下安装unbuntu16.04 虚拟机进行tensorflow 的编译安装。
- JavaScript中的运算符和表达式