Android
Data objects
Implementasi Kueri Relasional di Aplikasi Android
9 mnt
kueri relasional di android pendahuluan dalam panduan ini, anda akan melakukan kueri relasional di parse dan mengimplementasikan aplikasi android menggunakan kueri ini anda akan belajar cara menyiapkan dan mengkueri data realistis menggunakan back4app dan android tutorial ini menggunakan aplikasi yang dibuat di android studio arctic fox 2020 3 1 dengan compilesdk = 30 compilesdk = 30 , minsdk = 23 minsdk = 23 dan targetsdk = 30 targetsdk = 30 kapan saja, anda dapat mengakses proyek android lengkap yang dibangun dengan tutorial ini di repositori github kami repositori contoh kotlin repositori contoh java tujuan tujuan kami adalah mengkueri data yang disimpan di back4app back4app dari sebuah android android aplikasi berikut adalah pratinjau tentang apa yang akan kita capai prasyarat untuk menyelesaikan tutorial ini, kita perlu android studio sebuah aplikasi yang dibuat di back4app catatan ikuti tutorial aplikasi parse baru untuk belajar cara membuat aplikasi parse di back4app sebuah aplikasi android yang terhubung ke back4app catatan ikuti tutorial instalasi parse sdk untuk membuat proyek android studio yang terhubung ke back4app sebuah perangkat (atau perangkat virtual ) yang menjalankan android 4 1 (jelly bean) atau yang lebih baru mari kita mulai! sebelum langkah selanjutnya, kita perlu menghubungkan back4app back4app ke aplikasi kita anda harus menyimpan appid appid dan clientkey clientkey dari back4app back4app ke string xml string xml file dan kemudian inisialisasi parse parse di app java app java atau app kt app kt file ikuti tutorial aplikasi parse baru jika anda tidak tahu cara menginisialisasi parse parse ke aplikasi anda atau anda bisa mengunduh proyek yang kami bagikan tautan github di atas dan hanya mengedit appid appid dan clientkey clientkey bagian sesuai keinginan anda kapan saja, anda dapat mengakses proyek android lengkap yang dibangun dengan tutorial ini di repositori github kami repositori contoh kotlin repositori contoh java 1 simpan beberapa data di back4app pada langkah ini, kita akan membuat sebuah kelas dengan konsol js dan kode javascript yang disediakan oleh parse parse dan kita akan membuat kueri untuk kelas ini mari kita buat berbagai kelas, yang akan menjadi target kueri kita dalam panduan ini kelas kelas tersebut adalah penulis penulis , buku buku , penerbit penerbit dan toko buku toko buku , di mana buku buku memiliki hubungan 1\ n dengan penerbit penerbit dan n\ n dengan penulis penulis , dan toko buku toko buku memiliki hubungan n\ n dengan buku buku di konsol parse js, dimungkinkan untuk menjalankan kode javascript secara langsung, mengkueri dan memperbarui konten basis data aplikasi anda menggunakan perintah sdk js jalankan kode di bawah ini dari konsol js anda dan masukkan data di back4app berikut adalah tampilan konsol js di dasbor anda silakan lanjutkan dan buat kelas dengan konten contoh berikut 1 // add objects and create tables 2 // authors 3 const authora = new parse object('author'); 4 authora set('name', 'aaron writer'); 5 await authora save(); 6 7 const authorb = new parse object('author'); 8 authorb set('name', 'beatrice novelist'); 9 await authorb save(); 10 11 const authorc = new parse object('author'); 12 authorc set('name', 'casey columnist'); 13 await authorc save(); 14 15 // publishers 16 const publishera = new parse object('publisher'); 17 publishera set('name', 'acacia publishings'); 18 await publishera save(); 19 20 const publisherb = new parse object('publisher'); 21 publisherb set('name', 'birch distributions'); 22 await publisherb save(); 23 24 // books 25 const booka = new parse object('book'); 26 booka set('title', 'a love story'); 27 booka set('publisher', publishera); 28 booka set('publishingdate', new date('05/07/1998')); 29 const bookarelation = booka relation("authors"); 30 bookarelation add(authora); 31 await booka save(); 32 33 const bookb = new parse object('book'); 34 bookb set('title', 'benevolent elves'); 35 bookb set('publisher', publisherb); 36 bookb set('publishingdate', new date('11/31/2008')); 37 const bookbrelation = bookb relation("authors"); 38 bookbrelation add(authorb); 39 await bookb save(); 40 41 const bookc = new parse object('book'); 42 bookc set('title', 'can you believe it?'); 43 bookc set('publisher', publisherb); 44 bookc set('publishingdate', new date('08/21/2018')); 45 const bookcrelation = bookc relation("authors"); 46 bookcrelation add(authora); 47 bookcrelation add(authorc); 48 await bookc save(); 49 50 // bookstore 51 const bookstorea = new parse object('bookstore'); 52 bookstorea set('name', 'books of love'); 53 const bookstorearelation = bookstorea relation("books"); 54 bookstorearelation add(booka); 55 await bookstorea save(); 56 57 const bookstoreb = new parse object('bookstore'); 58 bookstoreb set('name', 'fantasy books'); 59 const bookstorebrelation = bookstoreb relation("books"); 60 bookstorebrelation add(bookb); 61 await bookstoreb save(); 62 63 const bookstorec = new parse object('bookstore'); 64 bookstorec set('name', 'general books'); 65 const bookstorecrelation = bookstorec relation("books"); 66 bookstorecrelation add(booka); 67 bookstorecrelation add(bookc); 68 await bookstorec save(); 69 70 console log('success'); 2 kuery data dari aplikasi android sekarang setelah anda mengisi semua kelas, kita sekarang dapat melakukan beberapa kueri relasional di dalamnya mari kita mulai dengan memfilter buku buku hasil berdasarkan penerbit, mencari yang termasuk dalam penerbit penerbit “acacia publishings” (atau “penerbit a”) menggunakan parsequery equalto parsequery equalto metode dasar 1 progressdialog show(); 2 parsequery\<parseobject> publisherquery = new parsequery<>("publisher"); 3 publisherquery whereequalto("name", "acacia publishings"); 4 try { 5 parseobject publisher = publisherquery getfirst(); 6 parsequery\<parseobject> bookquery = new parsequery\<parseobject>("book"); 7 bookquery whereequalto("publisher", publisher); 8 bookquery findinbackground((objects, e) > { 9 progressdialog hide(); 10 if (e == null) { 11 initdata(objects); 12 } else { 13 toast maketext(this, e getlocalizedmessage(), toast length short) show(); 14 } 15 }); 16 } catch (parseexception e) { 17 progressdialog hide(); 18 e printstacktrace(); 19 }1 progressdialog? show() 2 val publisherquery = parsequery\<parseobject>("publisher") 3 publisherquery whereequalto("name", "acacia publishings") 4 try { 5 val publisher = publisherquery first 6 val bookquery = parsequery\<parseobject>("book") 7 bookquery whereequalto("publisher", publisher) 8 bookquery findinbackground { objects list\<parseobject>?, e parseexception? > 9 progressdialog? hide() 10 if (e == null) { 11 initdata(objects!!) 12 } else { 13 toast maketext(this, e localizedmessage, toast length short) show() 14 } 15 } 16 } catch (e parseexception) { 17 progressdialog? hide() 18 e printstacktrace() 19 } mari kita sekarang melakukan kueri yang mana bookstore bookstore objek mengandung book book objek dengan tanggal penerbitan lebih besar dari 01/01/2010, menggunakan kueri dalam dengan parsequery wheregreaterthan parsequery wheregreaterthan metode dan kemudian parsequery wherematchesquery parsequery wherematchesquery metode 1 progressdialog show(); 2 parsequery\<parseobject> bookquery = new parsequery<>("book"); 3 4 calendar calendar = calendar getinstance(); 5 calendar set(2010,1,1,59,59,59); 6 date date = calendar gettime(); 7 8 bookquery wheregreaterthan("publishingdate", date); 9 10 parsequery\<parseobject> bookstorequery = new parsequery<>("bookstore"); 11 bookstorequery wherematchesquery("books",bookquery); 12 bookstorequery findinbackground((objects, e) > { 13 progressdialog hide(); 14 if (e==null){ 15 initdata(objects); 16 } else { 17 toast maketext(this, e getlocalizedmessage(), toast length short) show(); 18 } 19 });1 progressdialog? show() 2 val bookquery = parsequery\<parseobject>("book") 3 val calendar = calendar getinstance() 4 calendar\[2010, 1, 1, 59, 59] = 59 5 val date = calendar time 6 bookquery wheregreaterthan("publishingdate", date) 7 val bookstorequery = parsequery\<parseobject>("bookstore") 8 bookstorequery wherematchesquery("books", bookquery) 9 bookstorequery findinbackground { objects list\<parseobject>?, e parseexception? > 10 progressdialog? hide() 11 if (e == null) { 12 initdata(objects!!) 13 } else { 14 toast maketext(this, e localizedmessage, toast length short) show() 15 } 16 } sekarang mari kita buat kueri relasional yang lebih kompleks, mencari bookstore bookstore objek yang memiliki setidaknya satu book book yang ditulis oleh author author “aaron writer” (atau “authora”), menggunakan whereequalto whereequalto dan wherematchesquery wherematchesquery 1 progressdialog show(); 2 parsequery\<parseobject> authorquery = new parsequery<>("author"); 3 authorquery whereequalto("name","aaron writer"); 4 try { 5 parseobject authora = authorquery getfirst(); 6 parsequery\<parseobject> bookquery = new parsequery<>("book"); 7 bookquery whereequalto("authors",authora); 8 9 parsequery\<parseobject> bookstorequery = new parsequery<>("bookstore"); 10 bookstorequery wherematchesquery("books",bookquery); 11 12 bookstorequery findinbackground((objects, e) > { 13 progressdialog hide(); 14 if (e==null){ 15 initdata(objects); 16 } else { 17 toast maketext(this, e getlocalizedmessage(), toast length short) show(); 18 } 19 }); 20 21 22 } catch (parseexception e) { 23 progressdialog hide(); 24 e printstacktrace(); 25 }1 progressdialog? show() 2 val authorquery = parsequery\<parseobject>("author") 3 authorquery whereequalto("name", "aaron writer") 4 try { 5 val authora = authorquery first 6 val bookquery = parsequery\<parseobject>("book") 7 bookquery whereequalto("authors", authora) 8 val bookstorequery = parsequery\<parseobject>("bookstore") 9 bookstorequery wherematchesquery("books", bookquery) 10 bookstorequery findinbackground { objects list\<parseobject>?, e parseexception? > 11 progressdialog? hide() 12 if (e == null) { 13 initdata(objects!!) 14 } else { 15 toast maketext(this, e localizedmessage, toast length short) show() 16 } 17 } 18 } catch (e parseexception) { 19 progressdialog? hide() 20 e printstacktrace() 21 } selesai! di akhir panduan ini, anda telah belajar bagaimana kueri relasional bekerja di parse dan bagaimana cara melakukannya di back4app dari aplikasi android