日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android Realm相关操作

發(fā)布時(shí)間:2025/3/15 Android 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Realm相关操作 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

寫了2天的代碼,總結(jié)一下這兩天的一些積累
realm簡(jiǎn)單來(lái)說(shuō)就是一個(gè)可以代替sql的數(shù)據(jù)庫(kù), 特點(diǎn):易用,快速,跨平臺(tái),專業(yè)(支持加密,格式化查詢,易于移植,支持JSON,流式api,數(shù)據(jù)變更通知), 可視化

官方網(wǎng)站 https://realm.io/docs/java/latest/ 有需要的朋友,可以去看看
代碼:

1、配置
在最外面的那層build.gradle 配置這一段代碼

classpath "io.realm:realm-gradle-plugin:5.8.0"

然后在app文件里面的build.gradle 配置這一段代碼

apply plugin: 'realm-android'

1、布局

3、代碼
3.1創(chuàng)建一個(gè)需要保存數(shù)據(jù)庫(kù)的類,我寫了兩個(gè)

import io.realm.RealmObject;/*** @author Admin* https://realm.io/docs/java/latest/*/ public class Dog extends RealmObject {String name;String age;String aihao;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getAihao() {return aihao;}public void setAihao(String aihao) {this.aihao = aihao;}@Overridepublic String toString() {return "Dog{" +"name='" + name + '\'' +", age='" + age + '\'' +", aihao='" + aihao + '\'' +'}';} } import io.realm.RealmList; import io.realm.RealmObject; /*** @author Admin* https://realm.io/docs/java/latest/*/ public class MyRealmDemo extends RealmObject {String userName;String pwd;Long sessionId;private RealmList<Integer> Remarks = new RealmList<>();public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public Long getSessionId() {return sessionId;}public void setSessionId(Long sessionId) {this.sessionId = sessionId;}public RealmList<Integer> getRemarks() {return Remarks;}public void setRemarks(RealmList<Integer> remarks) {Remarks = remarks;}@Overridepublic String toString() {return "MyRealmDemo{" +"userName='" + userName + '\'' +", pwd='" + pwd + '\'' +", sessionId=" + sessionId +", Remarks=" + Remarks.size() +'}';} }

3.2 創(chuàng)建一個(gè)Application,在onCreate里面進(jìn)行初始化

import io.realm.Realm; import io.realm.RealmConfiguration; /*** @author Admin*/ public class MyApplication extends Application {public static RealmConfiguration config;@Overridepublic void onCreate() {super.onCreate();Realm.init(this);config = new RealmConfiguration.Builder().name("myRealm.realm").deleteRealmIfMigrationNeeded().build();Realm.setDefaultConfiguration(config);//配置默認(rèn)的數(shù)據(jù)庫(kù)//setDefaultConfiguration(new RealmConfiguration.Builder().build()); // RealmConfiguration configuration = new RealmConfiguration.Builder().build();} }

3.3 主界面的實(shí)現(xiàn)代碼

import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.TextView; import android.widget.Toast;import io.realm.Realm; import io.realm.RealmAsyncTask; import io.realm.RealmResults;/*** @author Admin*/ public class MainActivity extends AppCompatActivity implements View.OnClickListener {TextView txtShow;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initRealm();txtShow = findViewById(R.id.txt_show);findViewById(R.id.btn_add).setOnClickListener(this);findViewById(R.id.btn_search).setOnClickListener(this);findViewById(R.id.btn_delete).setOnClickListener(this);findViewById(R.id.btn_update).setOnClickListener(this);}Realm realm;Integer index = 0;RealmAsyncTask transaction;private void initRealm() {realm = Realm.getInstance(MyApplication.config);}/*** 升級(jí)數(shù)據(jù)庫(kù)*/ // class CustomMigration implements RealmMigration { // @Override // public void migrate(DynamicRealm realm, long oldVersion, long newVersion) { // RealmSchema schema = realm.getSchema(); // Log.e("MainActivity", "oldVersion:" + oldVersion + "----newVersion" + newVersion); // if (oldVersion == 1 && newVersion == 2) { // RealmObjectSchema personSchema = schema.get("Dog"); // if (!personSchema.hasField("Dog")) { personSchema.addField("aihao", String.class, FieldAttribute.REQUIRED); oldVersion++; } // // } // } // }private void addRealm() {transaction = realm.executeTransactionAsync(realm -> {MyRealmDemo myDemo = realm.createObject(MyRealmDemo.class);myDemo.setUserName("名字");myDemo.setPwd(index + "");myDemo.getRemarks().add(index);index++;}, () -> {//成功回調(diào)Log.e("MainActivity", "成功回調(diào)" + index);}, error -> {//失敗回調(diào)Log.e("MainActivity", "失敗");});transaction = realm.executeTransactionAsync(realm -> {Dog dog = realm.createObject(Dog.class);dog.setName("哈士奇");dog.setAge(index + "歲");dog.setAihao("拆家" + index);}, () -> {//成功回調(diào)Log.e("MainActivity", "成功回調(diào)" + index);}, error -> {//失敗回調(diào)Log.e("MainActivity", "失敗");});}private void updateRealm() {transaction = realm.executeTransactionAsync(realm -> {RealmResults<MyRealmDemo> myList = realm.where(MyRealmDemo.class).findAll();if (myList != null && myList.size() > 0) {MyRealmDemo myDemo = myList.get(0);myDemo.setUserName("換名字");myDemo.setPwd("小球不得");myDemo.getRemarks().add(index);index++;} else {Log.e("MainActivity", "updateRealm沒(méi)得東西,改毛線" + index);Toast.makeText(this, "updateRealm沒(méi)得東西,改毛線", Toast.LENGTH_SHORT).show();}}, () -> {//成功回調(diào)Log.e("MainActivity", "成功回調(diào)" + index);}, error -> {//失敗回調(diào)error.printStackTrace();Log.e("MainActivity", "失敗" + error.getMessage());});}private void deleteRealm() {transaction = realm.executeTransactionAsync(realm -> {RealmResults<MyRealmDemo> myList = realm.where(MyRealmDemo.class).findAll();//刪除第一個(gè)數(shù)據(jù)myList.get(0).deleteFromRealm(); // myList.deleteFirstFromRealm(); // //刪除最后一個(gè)數(shù)據(jù) // myList.deleteLastFromRealm(); // //刪除位置為1的數(shù)據(jù) // myList.deleteFromRealm(1); // //刪除所有數(shù)據(jù) // myList.deleteAllFromRealm();}, () -> {//成功回調(diào)Log.e("MainActivity", "deleteRealm刪球了" + index);}, error -> {//失敗回調(diào)Log.e("MainActivity", "deleteRealm沒(méi)刪拖");});}private void searchRealm() {RealmResults<MyRealmDemo> myList = realm.where(MyRealmDemo.class).findAll();String strText = "";if (myList != null && myList.size() > 0) {for (MyRealmDemo myRealmDemo : myList) {strText += "\n看什么玩意嘛:" + myRealmDemo.toString();Log.e("MainActivity", "看什么玩意嘛:" + myRealmDemo.toString());for (int intNum : myRealmDemo.getRemarks()) {strText += "\n數(shù)組里的東西:" + intNum;Log.e("MainActivity", "數(shù)組里的東西:" + intNum);}}} else {Log.e("MainActivity", "空的,代碼錯(cuò)了,看錘子");}RealmResults<Dog> dogList = realm.where(Dog.class).findAll();for (Dog dog : dogList) {strText += "\n我的狗:" + dog.toString();Log.e("MainActivity", "我的狗:" + dog.toString());}txtShow.setText(strText);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_add://添加addRealm();break;case R.id.btn_search://查詢searchRealm();break;case R.id.btn_delete://刪除deleteRealm();break;case R.id.btn_update://修改updateRealm();break;default:break;}}@Overrideprotected void onStop() {super.onStop();//取消當(dāng)前的數(shù)據(jù)庫(kù)操作狀態(tài)if (transaction != null && !transaction.isCancelled()) {transaction.cancel();}}@Overrideprotected void onDestroy() {super.onDestroy();//關(guān)閉連接realm.close();} }

效果圖:

源碼:
https://github.com/StrangerYang/testRealm

總結(jié)

以上是生活随笔為你收集整理的Android Realm相关操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。