Realm is a mobile database that runs directly inside phones, tablets or wearables. This repository holds the source code for the Java version of Realm, which currently runs only on Android.

Realm是一个移动端的数据库,它可以在手机、平板。穿戴设备上运行。这个仓库的代码是一个Java版本的代码,目前只用在安卓端。

摘自:https://github.com/realm/realm-java

导入JAR

  1. compile 'io.realm:realm-android:0.87.0'

在Application 中配置,不配置也可以,就是默认的哦。

  1. public class MyApplication extends Application {
  2. @Override
  3. public void onCreate() {
  4. super.onCreate();
  5. initRealm();
  6. }
  7. private void initRealm(){
  8. RealmConfiguration configuration = new RealmConfiguration
  9. .Builder(this)
  10. .name("test.realm")
  11. .deleteRealmIfMigrationNeeded()
  12. .schemaVersion(7).migration(new RealmMigration() {
  13. @Override
  14. public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
  15. }
  16. }).build();
  17. Realm.setDefaultConfiguration(configuration);
  18. }
  19. }

创建实体类,需集成RealmObject

  1. public class User extends RealmObject{
  2. @PrimaryKey
  3. private String id;
  4. private String userName;
  5. private String mobile;
  6. public String getId() {
  7. return id;
  8. }
  9. public void setId(String id) {
  10. this.id = id;
  11. }
  12. public String getUserName() {
  13. return userName;
  14. }
  15. public void setUserName(String userName) {
  16. this.userName = userName;
  17. }
  18. public String getMobile() {
  19. return mobile;
  20. }
  21. public void setMobile(String mobile) {
  22. this.mobile = mobile;
  23. }
  24. }

在Activity中初始化

  1. Realm myRealm ;
  2. myRealm= Realm.getInstance(this);

添加数据:

  1. //Realm开始处理事物 方式1:
  2. myRealm.beginTransaction();
  3. User user = myRealm.createObject(User.class);
  4. user.setId("445115");
  5. user.setMobile("44545");
  6. user.setUserName("hha");
  7. myRealm.commitTransaction();
  8. //方式2:
  9. User user2=new User();
  10. user2.setId("1123");
  11. user2.setUserName("sss");
  12. user2.setMobile("445");
  13. myRealm.beginTransaction();
  14. User userCopy2 = myRealm.copyToRealm(user2);
  15. myRealm.commitTransaction();

查找数据

  1. RealmResults<User> listUser = myRealm.where(User.class).findAll();
  2. StringBuilder stringBuilder=new StringBuilder();
  3. for(User u:listUser) {
  4. stringBuilder.append(u.getUserName()+"--------****--------- ");
  5. Log.d("results1",u.getUserName());
  6. }
  7. tv.setText(stringBuilder.toString());

代码并不难,希望通过我这个例子,一是巩固自己的学习和理解,二是希望更多的人更好的学习,我会再接再厉,写更多的博文。

源码下载

csdn博客

Android Realm初试的更多相关文章

  1. Android Realm数据库使用指南

    Android Realm数据库使用指南 Realm数据库, 目前有Java, Objective‑C, React Native, Swift, Xamarin的几种实现, 是一套用来取代SQLit ...

  2. Realm Update failed - Android

    Realm Update failed - Android Ask Question up vote 0 down vote favorite I'm using realm for my andro ...

  3. Android Studio的初次认识

    Android的初试 一.认识Android Studio 在我们新建项目的时候,会遇到这样的一个窗口,首先我们认识一下这些都是什么,这样我们才能够更好的进行下一步的学习! 这里的 Phone and ...

  4. 深入解析Sqlite的完美替代者,android数据库新王者——Realm

    写在前面: 又到一年一度七夕虐狗节,看着大家忍受着各种朋友圈和QQ空间还有现实生活中的轮番轰炸,我实在不忍心再在这里给大家补刀,所以我觉得今天不虐狗,继续给大家分享有用的. 如果你比较关心androi ...

  5. 转: app端数据库(性能高) realm (ios, android 均支持)

    转:  http://ios.jobbole.com/85041/ 移动端数据库新王者:realm 2016/05/14 · iOS开发 · 数据库 分享到:0 原文出处: 没故事的卓同学(@没故事的 ...

  6. Realm for Android快速入门教程

    介绍 如果你关注安卓开发的最新趋势,你可能已经听说过Realm.Realm是一个可以替代SQLite以及ORMlibraries的轻量级数据库. 相比SQLite,Realm更快并且具有很多现代数据库 ...

  7. Android数据库Realm实践

    Android开发中常用的数据库有5个: 1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM.支持JDBC连接,Spring以及Android平台. ...

  8. Android之Realm详解

    文章大纲 一.Realm介绍二.Realm实战三.Realm官方文档四.项目源码下载五.参考文章   一.Realm介绍 1. 什么是Realm   Realm 是一个手机数据库,是用来替代 SQli ...

  9. Realm For Android详细教程

    目录 1.Realm简介 2.环境配置 3.在Application中初始化Realm 4.创建实体 5.增删改查 6.异步操作 7.Demo地址(https://github.com/RaphetS ...

随机推荐

  1. MAYA删除不干净

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  2. 安装mplayer2和smplayer2

    MPlayer2 PPA源安装,打开终端,输入命令: sudo add-apt-repository ppa:motumedia/mplayer-daily sudo apt-get update s ...

  3. Qt 学习

    Qt 学习 C++ 模版 QObject 提供一个十分有用的 api,T findChild(QString, Qt::FindChildOptions),这个函数接收一个模版参数,返回模版参数的类型 ...

  4. android finish和system.exit(0)的区别

    finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理:当调用System.exit(0)时,杀死了整个 ...

  5. Mysql的transaction实现(转)

    (http://www.blogjava.net/i369/archive/2007/04/29/108906.html) transaction在数据库编程中是一个重要的概念,这样做可以控制对数据库 ...

  6. React API

    组件 API setState 合并 nextState 和当前 state. 这是在事件处理函数中和请求回调函数中触发 UI 更新的主要方法. 另外,也支持可选的回调函数,该函数在 setState ...

  7. Python列表边遍历边修改问题解决方案:alist[:]

    最近在看python,遇到个简单的问题:删除列表中指定的重复元素,发现一些实用并且有趣的东西. 1.错误示范 alist = [1,1,2,2,3,3,2,2,1,1] for i in alist: ...

  8. C++ Knowledge series Template & Class

    Function Function is composed of name, parameter (operand, type of operand), return value, body with ...

  9. 开发中常用的sql语句二

    sql 数字全角半角转换 create FUNCTION dbo.ConvertWordAngle ( ), --要转换的字符串 @flag bit --转换标志,0转换成半角,1转换成全角 )) A ...

  10. check_mk raw 1.2.8p17 FAQ

    Q:有没有已经实施的案例 A: http://wiki.lustre.org/Check_MK/Graphite/Graphios_Setup_Guide Q:check-mk-agent怎么安装? ...