1 00:00:02,100 --> 00:00:05,240 Jadi mari selami SQLite. Sekali lagi kami mendapat 2 00:00:05,300 --> 00:00:11,100 modul untuk itu didukung oleh expo yang kami instal sama seperti kami menginstal modul asli 3 00:00:11,130 --> 00:00:12,120 lainnya juga 4 00:00:12,120 --> 00:00:18,570 dan sekarang hanya beberapa kata cepat tentang SQLite. SQLite adalah sistem basis data yang bisa Anda katakan 5 00:00:18,570 --> 00:00:22,840 tersedia di iOS dan Android, sehingga Anda dapat dengan cepat membuat basis data 6 00:00:22,860 --> 00:00:30,240 di sana, itu akan sangat mudah dengan modul ini dan Anda kemudian dapat menggunakan beberapa sintaks SQL, beberapa sintaks SQL dasar untuk 7 00:00:30,570 --> 00:00:32,860 menjalankan kueri terhadap basis data itu. 8 00:00:32,940 --> 00:00:39,030 Sekarang, saya tidak akan menyelami lebih dalam sintaks SQL di sini karena ini jelas bukan program 9 00:00:39,030 --> 00:00:41,730 SQL tetapi untuk mempelajari semua tentang bagaimana 10 00:00:41,730 --> 00:00:50,880 menggunakannya, jelas-jelas memeriksa dokumen resmi dan melampirkan Anda juga menemukan tautan dengan cuplikan yang lebih terperinci yang menyelam ke cara menggunakan paket SQLite dalam 11 00:00:50,880 --> 00:00:56,550 aplikasi expo di mana Anda dapat melihat lebih banyak contoh cara menghapus barang dan sebagainya 12 00:00:56,550 --> 00:01:02,460 dan Anda juga akan menemukan referensi SQL untuk SQLite di mana Anda dapat mempelajari lebih lanjut 13 00:01:02,460 --> 00:01:03,990 tentang sintaks SQL. 14 00:01:03,990 --> 00:01:06,630 Saya akan menunjukkan beberapa sintaks dasar sekarang dalam 15 00:01:06,720 --> 00:01:10,360 modul ini, tetapi untuk semua hal yang dapat Anda lakukan dalam pertanyaan Anda, 16 00:01:10,470 --> 00:01:17,170 untuk semua perintah yang dapat Anda jalankan, pasti lihat sumber daya ini. Sekarang dengan itu, mari kita tambahkan SQLite dengan menjalankan expo 17 00:01:17,170 --> 00:01:24,010 install expo-sqlite di proyek kami yang akan menginstal ini ke dalam proyek kami di sini dan itu akan bekerja di 18 00:01:24,010 --> 00:01:27,250 luar kotak seperti sebelumnya, tidak ada konfigurasi tambahan 19 00:01:28,510 --> 00:01:32,720 yang diperlukan dan setelah instalasi ini selesai, kami dapat mulai bekerja dengan SQLite. 20 00:01:32,830 --> 00:01:35,750 Sekarang bekerja dengan basis data melibatkan beberapa hal, misalnya 21 00:01:35,770 --> 00:01:41,020 Anda perlu membuka koneksi ke basis data dan jika belum ada basis data yang menjadi kasus 22 00:01:41,020 --> 00:01:46,260 ketika Anda pertama kali mengaksesnya di masa pakai aplikasi Anda, itu juga akan membuat basis data 23 00:01:46,450 --> 00:01:51,070 itu. dan setelah Anda memiliki koneksi ke database yang dibuat, Anda tentu saja dapat menjalankan 24 00:01:51,070 --> 00:01:52,090 query terhadapnya. 25 00:01:52,090 --> 00:01:57,310 Jadi untuk itu, saya akan benar-benar menambahkan folder pembantu dengan db. File js di sana yang tidak perlu Anda 26 00:01:57,310 --> 00:02:03,220 lakukan tetapi saya ingin memiliki logika database saya di sana untuk menjaga file saya yang lain tetap ramping dan sehingga 27 00:02:03,220 --> 00:02:10,210 saya memiliki satu file di mana kita dapat melihat semua logika database. Sekarang di sana, kita dapat mengimpor SQLite dari paket dan 28 00:02:10,290 --> 00:02:13,810 seperti yang Anda lihat, sintaks impor sekarang sedikit berbeda daripada paket lainnya. 29 00:02:13,980 --> 00:02:19,320 Alih-alih mengimpor bintang sebagai SQLite dari paket ini, kami menginstalnya di sini dengan sintaks impor bernama 30 00:02:19,320 --> 00:02:20,300 ini, selain 31 00:02:20,310 --> 00:02:22,180 itu, masih sangat mirip dan sekarang 32 00:02:22,500 --> 00:02:25,110 kita dapat mulai menggunakan paket itu di sini. 33 00:02:25,260 --> 00:02:31,080 Sekarang pertama-tama, saya akan membuat konstanta db yang menyimpan referensi ke database saya yang saya dapatkan dengan 34 00:02:31,080 --> 00:02:34,290 menjalankan database SQLite terbuka dan di sana kita memasukkan 35 00:02:34,290 --> 00:02:39,020 nama database yang bisa menjadi tempat. db. 36 00:02:39,060 --> 00:02:43,980 Sekarang yang akan dilakukan adalah terhubung ke database ini atau membuat database jika tidak dapat menemukannya, jadi 37 00:02:44,010 --> 00:02:48,990 ketika kami pertama kali meluncurkan aplikasi dan Anda tidak perlu melakukan hal lain untuk mendapatkan akses ke database, 38 00:02:49,080 --> 00:02:50,370 jadi itu sangat sepele. 39 00:02:50,380 --> 00:02:55,110 Sekarang baris kode ini akan dieksekusi setiap kali kita mengeksekusi file ini yang secara efektif terjadi ketika 40 00:02:55,170 --> 00:02:57,870 kita pertama kali mengimpor file ini di mana saja. 41 00:02:57,990 --> 00:03:04,320 Sekarang saya juga ingin menambahkan fungsi init di sini disimpan dalam konstanta yang saya lakukan untuk menginisialisasi 42 00:03:04,320 --> 00:03:08,890 database ini dan saya akan mengekspor fungsi ini sebagai ekspor bernama. 43 00:03:08,910 --> 00:03:15,300 Sekarang dalam fungsi ini, saya ingin memastikan bahwa kita membuat tabel dasar karena database SQL bekerja dengan tabel 44 00:03:15,300 --> 00:03:21,450 yang menyimpan catatan dan catatan Anda pada dasarnya adalah baris data yang Anda tambahkan ke tabel Anda. 45 00:03:21,450 --> 00:03:27,420 Sekarang awalnya ketika kita membuat database, itu kosong tetapi untuk menyimpan tempat, kita membutuhkan tabel yang 46 00:03:27,420 --> 00:03:29,200 dapat menampung tempat-tempat ini. 47 00:03:29,220 --> 00:03:35,190 Jadi saya ingin memiliki fungsi inisialisasi di sini yang sebenarnya akan membuat tabel itu jika belum 48 00:03:35,190 --> 00:03:35,900 ada. 49 00:03:36,690 --> 00:03:44,780 Jadi di sana, saya dapat menggunakan konstanta db saya yang menunjuk pada database itu dan menjalankan transaksi. Sekarang transaksi adalah metode yang ditawarkan oleh paket SQLite 50 00:03:44,790 --> 00:03:50,220 pada database dan Anda akan menemukan semua itu di dokumen resmi, tentu 51 00:03:50,220 --> 00:03:51,560 saja, dan 52 00:03:51,780 --> 00:03:57,570 metode transaksi ini berfungsi sebagai argumen yang memberi Anda akses ke objek transaksi 53 00:03:57,660 --> 00:03:59,620 yang dibuatnya untuk Anda. 54 00:03:59,750 --> 00:04:06,870 Konsep transaksi hanyalah sebuah konsep di mana paket ini pada akhirnya menjamin bahwa permintaan Anda selalu dieksekusi secara 55 00:04:06,870 --> 00:04:13,200 keseluruhan dan bahwa jika beberapa bagian dari permintaan gagal, seluruh permintaan dibatalkan sehingga Anda tidak bisa 56 00:04:13,200 --> 00:04:17,340 berakhir dengan data yang rusak di database Anda, itu 57 00:04:17,340 --> 00:04:21,670 sebabnya Anda benar-benar memasukkan setiap permintaan ke dalam transaksi semacam itu. 58 00:04:21,750 --> 00:04:26,760 Jadi ini menciptakan transaksi atau menginisialisasi transaksi dan kemudian memberi Anda akses ke objek transaksi 59 00:04:26,790 --> 00:04:30,830 ini di sini di fungsi ini yang akan dieksekusi untuk Anda. 60 00:04:30,840 --> 00:04:37,890 Jadi di sini, kita sekarang dapat menggunakan objek transaksi ini untuk mengeksekusi query SQL dengan 61 00:04:37,890 --> 00:04:39,450 bantuan mengeksekusi 62 00:04:39,450 --> 00:04:48,260 metode SQL, sekali lagi itu juga didokumentasikan di sini. Jadi jalankan SQL sekarang mengambil string yang menggambarkan permintaan SQL Anda dan 63 00:04:48,530 --> 00:04:52,500 itulah bagian di mana Anda bisa menyelam ke dalam SQL 64 00:04:52,520 --> 00:04:57,450 doc yang saya sebutkan sebelumnya di mana Anda dapat mempelajari semua tentang bahasa SQL. 65 00:04:57,560 --> 00:05:02,840 Sekarang saya ingin membuat tabel di sini yang kita lakukan dengan membuat perintah tabel dan Anda 66 00:05:02,870 --> 00:05:03,980 tidak perlu menulis 67 00:05:03,980 --> 00:05:11,600 ini dalam huruf besar, saya hanya melakukan ini untuk memperjelas bahwa ini adalah perintah standar yang dibangun ke dalam bahasa SQL dan saya ingin 68 00:05:11,600 --> 00:05:12,590 buat tabel 69 00:05:12,590 --> 00:05:19,130 jika tidak ada yang kita lakukan dengan jika tidak ada batasan di sini dan sekarang nama tabel akan menjadi tempat, 70 00:05:19,130 --> 00:05:20,750 huruf kecil, sekarang itu hal 71 00:05:20,750 --> 00:05:23,300 dinamis saya sendiri di sini, benar saya ingin 72 00:05:23,360 --> 00:05:28,760 memberi nama tempat dan sekarang antara tanda kurung, Anda mengkonfigurasi apa yang ada di tabel dan setelah 73 00:05:28,760 --> 00:05:31,110 itu, Anda dapat menambahkan tanda titik koma. 74 00:05:31,130 --> 00:05:35,420 Jadi sekarang kita mendefinisikan bidang yang berbeda yang ingin kita miliki dalam tabel itu, 75 00:05:35,450 --> 00:05:42,380 kolom yang berbeda sehingga untuk mengatakan dan saya ingin memiliki kolom ID dan saya akan mengatur ini menjadi tipe integer yang merupakan 76 00:05:42,380 --> 00:05:44,660 salah satu tipe data yang didukung 77 00:05:44,660 --> 00:05:50,360 dalam SQL dan itu akan menjadi kunci utama yang berarti itu juga akan dipaksa menjadi unik, Anda tidak dapat 78 00:05:50,360 --> 00:05:55,400 memiliki ID yang sama dua kali di sana dan itu akan membuat otomatis ID itu untuk 79 00:05:55,400 --> 00:05:57,880 Anda yang sangat nyaman dan tidak boleh nol, 80 00:05:57,890 --> 00:06:03,680 jadi menambahkan nilai kosong di sana tidak akan diizinkan. Sekarang dengan koma, kita dapat menambahkan kolom 81 00:06:03,680 --> 00:06:08,030 berikutnya yang ingin kita miliki dan itu akan menjadi judul saya. 82 00:06:08,030 --> 00:06:14,460 Sekarang judul harus bertipe teks dan Anda juga dapat menambahkan bukan nol di sana jika Anda mau, semua 83 00:06:14,670 --> 00:06:17,200 data saya seharusnya tidak nol sebenarnya. 84 00:06:17,670 --> 00:06:22,860 Sekarang selain judul, saya juga ingin agar imageUri disimpan di sana dan itu juga teks 85 00:06:22,860 --> 00:06:24,110 yang bukan nol. 86 00:06:24,120 --> 00:06:28,950 Tentu saja teks dan bukan file atau sesuatu seperti itu karena kita tidak 87 00:06:29,220 --> 00:06:34,020 menyimpan file dalam database, kita menyimpan path ke file dalam database yang merupakan 88 00:06:34,020 --> 00:06:40,530 string dan sekarang sesuatu yang lain kita akan butuhkan nanti yang Saya juga sudah ingin mengatur adalah alamat 89 00:06:40,530 --> 00:06:47,760 saya yang merupakan teks, yang harus berupa string yang menggambarkan alamat tempat dan bidang garis lintang atau hanya lat yang 90 00:06:47,760 --> 00:06:54,990 nyata, yang merupakan angka titik apung di akhir dan bujur di sini disingkat dengan lng yang juga nyata dan ini 91 00:06:55,050 --> 00:06:56,330 semua tidak nol. 92 00:06:56,340 --> 00:07:03,090 Sekarang kami belum mengambil lokasi, tetapi kami akan melakukannya nanti dan kami akan menyatakan lokasi 93 00:07:03,090 --> 00:07:10,080 sebagai kombinasi garis lintang dan garis bujur yang merupakan cara standar untuk mengekspresikan titik di dunia. 94 00:07:10,110 --> 00:07:14,150 Jadi ini membuat tabel seperti itu sekarang jika belum ada. 95 00:07:14,150 --> 00:07:20,130 Sekarang jalankan metode SQL juga mengambil argumen kedua yang merupakan array argumen yang akan ikut bermain nanti yang belum kita butuhkan, 96 00:07:20,130 --> 00:07:22,500 ini akan menjadi argumen dinamis yang dapat 97 00:07:22,590 --> 00:07:26,850 Anda masukkan ke dalam permintaan ini, tetapi kami tidak membutuhkannya di sini dan maka kita 98 00:07:27,120 --> 00:07:33,810 memiliki dua fungsi di sini sebagai argumen nomor tiga dan empat. Fungsi pertama yang kami lewati adalah 99 00:07:33,810 --> 00:07:35,790 fungsi sukses, ini 100 00:07:36,000 --> 00:07:38,940 dijalankan jika perintah ini berhasil. 101 00:07:38,940 --> 00:07:43,140 Argumen kedua adalah fungsi kesalahan yang dijalankan jika ini gagal. 102 00:07:43,200 --> 00:07:48,930 Sekarang argumen pertama untuk masing-masing fungsi di sini dan fungsi-fungsi ini dieksekusi atas nama Anda oleh paket SQL tentu 103 00:07:48,930 --> 00:07:50,510 saja, jadi fungsi-fungsi ini 104 00:07:50,520 --> 00:07:54,990 selalu sebagai argumen pertama pada dasarnya mendapatkan permintaan Anda dieksekusi dan dengan menambahkan garis 105 00:07:55,140 --> 00:07:59,490 bawah sebagai nama di sini, saya memberi sinyal bahwa Saya tidak peduli tentang ini, 106 00:07:59,490 --> 00:08:01,740 tetapi saya tertarik pada argumen kedua dan 107 00:08:01,740 --> 00:08:10,130 di sini, ini akan menjadi objek kesalahan saya dan sekarang untuk membuat ini dapat digunakan dengan cara yang mudah, saya benar-benar akan membungkus ini menjadi janji kustom. 108 00:08:10,170 --> 00:08:17,100 Jadi di sini, saya akan membuat janji dengan menggunakan janji baru, janji yang dibangun ke dalam Javascript dan didukung oleh 109 00:08:17,100 --> 00:08:23,820 versi Javascript Bereaksi kegunaan asli dan janji mengambil fungsi yang mengambil tekad dan fungsi penolakan sebagai argumen dan sekarang 110 00:08:23,910 --> 00:08:25,290 kita bisa memindahkan 111 00:08:25,800 --> 00:08:32,190 basis data ini kode transaksi di sana dan dalam kasus sukses, saya sebut tekad yang berarti bahwa janji 112 00:08:32,220 --> 00:08:37,200 luar akan diselesaikan, dalam kasus kesalahan, saya sebut tolak dan teruskan kesalahan saya di 113 00:08:37,200 --> 00:08:41,220 sini dan kemudian saya dapat mengembalikan janji di sini secara keseluruhan 114 00:08:41,220 --> 00:08:47,400 dalam metode init saya dan sekarang saya dapat memanggil metode init dari tempat lain di aplikasi dan 115 00:08:47,400 --> 00:08:52,220 saya mendapatkan kembali janji yang akan menyelesaikan jika kita berhasil menginisialisasi database, jadi 116 00:08:52,230 --> 00:08:58,440 dalam membuat tabel atau jika kita menghadapi kesalahan. Ngomong-ngomong jika tidak ada tabel yang dibuat karena sudah 117 00:08:58,440 --> 00:09:06,680 ada, kami tidak akan mendapatkan kesalahan tetapi kami masih akan berakhir dalam kasus sukses. Jadi dengan ini, kami masih tidak menyimpan apa pun 118 00:09:06,680 --> 00:09:10,100 di database tetapi kami sedang menyiapkan database. 119 00:09:10,100 --> 00:09:15,260 Jadi sekarang mari kita pastikan kita memanggil init dan tentu saja tempat untuk menyebutnya adalah aplikasi. File js karena 120 00:09:15,260 --> 00:09:18,060 kami ingin menginisialisasi database 121 00:09:18,140 --> 00:09:25,700 sesegera mungkin ketika aplikasi kami mulai. Jadi saya akan mengimpor sesuatu dari folder helpers saya di sana, dari file database di sana dan itu sesuatu 122 00:09:25,700 --> 00:09:30,620 yang tidak mengejutkan adalah fungsinya dan karenanya di sini ketika aplikasi ini. File js dieksekusi, ketika kita juga 123 00:09:30,750 --> 00:09:37,550 menginisialisasi toko Redux dan seterusnya, saya ingin memanggil init di sini dan sekarang init berhasil atau tidak, 124 00:09:37,550 --> 00:09:45,380 jadi untuk sekarang saya hanya akan menambahkan blok lalu di mana saya katakan konsol log menginisialisasi basis data, jadi itulah 125 00:09:45,770 --> 00:09:46,520 kasus 126 00:09:46,550 --> 00:09:54,200 sukses atau blok tangkap di mana kita mendapatkan kesalahan potensial di mana saya konsol log menginisialisasi db gagal dan 127 00:09:54,230 --> 00:10:03,610 di mana saya kemudian juga konsol log kesalahan yang kita dapatkan. Dan jika kita sekarang menyimpan ini, Anda harus melihat di sini di 128 00:10:04,000 --> 00:10:09,880 log inisialisasi basis data yang merupakan output dari iPhone dan sekarang dimulai di Android, Anda melihatnya 129 00:10:09,880 --> 00:10:11,920 di sana untuk Android juga. 130 00:10:12,070 --> 00:10:18,610 Agar berfungsi dan sekarang kita punya basis data yang diinisialisasi, saatnya untuk sekarang juga menambahkan lebih banyak metode untuk memastikan kita juga 131 00:10:18,610 --> 00:10:21,820 dapat memasukkan data dan kemudian juga tentu saja, mengambil data.