首页 > 编程知识 正文

realme手机root教程,javaandroid开发教程

时间:2023-05-06 10:14:08 阅读:109661 作者:777

介绍

如果你关注安卓开发的最新趋势,你可能已经听说过Realm了。 Realm是一个轻量级数据库,可以代替SQLite和ORMlibraries。

Realm比SQLite更快,并且具有许多现代数据库的特性,包括JSON支持、流api、数据更改通知和加密支持。 这些对安卓开发者来说很方便。

在本快速入门教程中,您将学习Android自述的基础知识。 本教程使用Realm v0.84.1。

1 .将自述添加到项目

要在安卓工程中使用Realm,必须将名为compile ' io.realm 3360 realm-Android 33600.84.1 '的依赖关系添加到module的build.gradle文件中

创建自述

Realm相当于SQLite数据库。 有相应的文件,一旦创建,就会永久保存在Android的文件系统中。

要创建新的Realm,可以在任何Activity中调用静态方法Realm.getInstance。 realm my realm=realm.getinstance (context;

请注意,如果在不传递RealmConfiguration的情况下调用Realm.getInstance,则会创建名为default.Realm的realm文件。

如果要向APP中添加其他Realm,则必须使用RealmConfiguration.Builder对象并为Realm文件指定唯一的名称。 RealmmyOtherRealm=

realm.getinstance (newrealmconfiguration.builder )上下文) )。

. name(myotherrealm.realm ) )

. build () )

);

创建自述对象

只要继承了RealmObject类,就可以将任何JavaBean存储在Realm中。 你不知道JavaBean是什么吗? 这是一个可序列化的java类,具有缺省构造函数,成员变量具有相应的getter/setter方法。 例如,以下类的实例可以轻松保存在一个Realm中: publicclasscountryextendsrealmobject { privatestring name; 私有输入价值; 公共计数{ }公共字符串getname { } { return name;

}publicvoidsetname(stringname ) {this.name=name;

}publicintgetPopulation () {returnpopulation;

} publicvoidsetpopulation (int population ) {this.population=population;

}

}

如果希望RealmObject的成员变量是主键,可以使用@PrimaryKey注释。 例如,此示例说明如何将主键code:@ primarykeyprivatestringcode添加到Country类。 公共字符串代码() {返回代码;

}publicvoidsetcode(stringcode ) {this.code=code;

}

创建传递

从一个Realm读取数据非常简单,但将在下一节中介绍。 但是,把数据写入那个有点复杂。 Realm符合ACID (四个基本元素的缩写,数据库事务可以成功执行)规范,强制所有写入都在一个事务中执行,以确保原子性和一致性。

要开始新事务,请使用beginTransaction方法。 同样,要结束此事务,请使用commitTransaction方法。

注:事务为英语翻译。

本文档说明如何创建并保存Country类的实例。 myRealm.beginTransaction (;

//Createanobject

country country1=my realm.createobject (country.class;

//Setitsfields

country1.setname('norway );

country1.setpopulation(5165800;

country1.setcode('no );

myRealm.commitTransaction (;

您可能已经注意到,Country1不是使用country类的构造函数创建的。 对于Realm,它管理必须使用createObject方法创建的RealmObject的实例。

如果需要使用构造函数,请记住在提交事务之前使用相关Realm对象的copyToRealm方法。 这里是一个例子。 //createtheobjectcountrycountry2=new country (;

country2.setname(Russia );

country2. set population (146430430;

country2.setcode('ru );

myRealm.beginTransaction (;

countrycopyofcountry2=my realm.copy to realm (country 2;

myRealm.commitTransaction (;

5 .写查询

Realm为创建查询提供了一组非常直观、流式的API。 要创建查询,请使用相关Realm对象的where方法,并将其传递给感兴趣的对象的类。 创建查询后,可以使用返回RealmResults对象的findAll方法检索所有结果。 下面的示例获取并打印Country中的所有对象: RealmResultsresults1=

myrealm.where(country.class ).findAll ); for(countryc:results1) log.d )、c.getName );

}//PrintsNorway,Russia

Realm提供了几种合适的命名方法,包括beginsWith、endsWith、lesserThan和greaterThan,并可用于过滤和过滤结果。 以下代码说明如何使用greaterThan方法获取population (人口)超过一亿的countryobjects。 realmresultsresults2=

myrealm.where(country.class ) )。

. greaterthan(population ),100000000 ) )。

. findAll (; //GetsonlyRussia

如果要对查询结果进行分类,可以使用findAllSorted方法。 参数用String指定分类字段的名称,用boolean指定分类顺序。 //Sortbyname,indescendingorderrealmresultsresults3=

myrealm.where(country.class ) )。

. findallsorted('name ',false ); //GetsRussia,Norway

总结

在本快速入门中,您学习了如何在Android项目中使用Realm。 您将看到创建Realm数据库和保存查询数据是多么容易。 要了解更多关于t Realm for Android的信息,请参阅Java文档。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。