Jadi mari selami SQLite. Sekali lagi kami mendapat
modul untuk itu didukung oleh expo yang kami instal sama seperti kami menginstal modul asli
lainnya juga
dan sekarang hanya beberapa kata cepat tentang SQLite. SQLite adalah sistem basis data yang bisa Anda katakan
tersedia di iOS dan Android, sehingga Anda dapat dengan cepat membuat basis data
di sana, itu akan sangat mudah dengan modul ini dan Anda kemudian dapat menggunakan beberapa sintaks SQL, beberapa sintaks SQL dasar untuk
menjalankan kueri terhadap basis data itu.
Sekarang, saya tidak akan menyelami lebih dalam sintaks SQL di sini karena ini jelas bukan program
SQL tetapi untuk mempelajari semua tentang bagaimana
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
aplikasi expo di mana Anda dapat melihat lebih banyak contoh cara menghapus barang dan sebagainya
dan Anda juga akan menemukan referensi SQL untuk SQLite di mana Anda dapat mempelajari lebih lanjut
tentang sintaks SQL.
Saya akan menunjukkan beberapa sintaks dasar sekarang dalam
modul ini, tetapi untuk semua hal yang dapat Anda lakukan dalam pertanyaan Anda,
untuk semua perintah yang dapat Anda jalankan, pasti lihat sumber daya ini. Sekarang dengan itu, mari kita tambahkan SQLite dengan menjalankan expo
install expo-sqlite di proyek kami yang akan menginstal ini ke dalam proyek kami di sini dan itu akan bekerja di
luar kotak seperti sebelumnya, tidak ada konfigurasi tambahan
yang diperlukan dan setelah instalasi ini selesai, kami dapat mulai bekerja dengan SQLite.
Sekarang bekerja dengan basis data melibatkan beberapa hal, misalnya
Anda perlu membuka koneksi ke basis data dan jika belum ada basis data yang menjadi kasus
ketika Anda pertama kali mengaksesnya di masa pakai aplikasi Anda, itu juga akan membuat basis data
itu. dan setelah Anda memiliki koneksi ke database yang dibuat, Anda tentu saja dapat menjalankan
query terhadapnya.
Jadi untuk itu, saya akan benar-benar menambahkan folder pembantu dengan db. File js di sana yang tidak perlu Anda
lakukan tetapi saya ingin memiliki logika database saya di sana untuk menjaga file saya yang lain tetap ramping dan sehingga
saya memiliki satu file di mana kita dapat melihat semua logika database. Sekarang di sana, kita dapat mengimpor SQLite dari paket dan
seperti yang Anda lihat, sintaks impor sekarang sedikit berbeda daripada paket lainnya.
Alih-alih mengimpor bintang sebagai SQLite dari paket ini, kami menginstalnya di sini dengan sintaks impor bernama
ini, selain
itu, masih sangat mirip dan sekarang
kita dapat mulai menggunakan paket itu di sini.
Sekarang pertama-tama, saya akan membuat konstanta db yang menyimpan referensi ke database saya yang saya dapatkan dengan
menjalankan database SQLite terbuka dan di sana kita memasukkan
nama database yang bisa menjadi tempat. db.
Sekarang yang akan dilakukan adalah terhubung ke database ini atau membuat database jika tidak dapat menemukannya, jadi
ketika kami pertama kali meluncurkan aplikasi dan Anda tidak perlu melakukan hal lain untuk mendapatkan akses ke database,
jadi itu sangat sepele.
Sekarang baris kode ini akan dieksekusi setiap kali kita mengeksekusi file ini yang secara efektif terjadi ketika
kita pertama kali mengimpor file ini di mana saja.
Sekarang saya juga ingin menambahkan fungsi init di sini disimpan dalam konstanta yang saya lakukan untuk menginisialisasi
database ini dan saya akan mengekspor fungsi ini sebagai ekspor bernama.
Sekarang dalam fungsi ini, saya ingin memastikan bahwa kita membuat tabel dasar karena database SQL bekerja dengan tabel
yang menyimpan catatan dan catatan Anda pada dasarnya adalah baris data yang Anda tambahkan ke tabel Anda.
Sekarang awalnya ketika kita membuat database, itu kosong tetapi untuk menyimpan tempat, kita membutuhkan tabel yang
dapat menampung tempat-tempat ini.
Jadi saya ingin memiliki fungsi inisialisasi di sini yang sebenarnya akan membuat tabel itu jika belum
ada.
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
pada database dan Anda akan menemukan semua itu di dokumen resmi, tentu
saja, dan
metode transaksi ini berfungsi sebagai argumen yang memberi Anda akses ke objek transaksi
yang dibuatnya untuk Anda.
Konsep transaksi hanyalah sebuah konsep di mana paket ini pada akhirnya menjamin bahwa permintaan Anda selalu dieksekusi secara
keseluruhan dan bahwa jika beberapa bagian dari permintaan gagal, seluruh permintaan dibatalkan sehingga Anda tidak bisa
berakhir dengan data yang rusak di database Anda, itu
sebabnya Anda benar-benar memasukkan setiap permintaan ke dalam transaksi semacam itu.
Jadi ini menciptakan transaksi atau menginisialisasi transaksi dan kemudian memberi Anda akses ke objek transaksi
ini di sini di fungsi ini yang akan dieksekusi untuk Anda.
Jadi di sini, kita sekarang dapat menggunakan objek transaksi ini untuk mengeksekusi query SQL dengan
bantuan mengeksekusi
metode SQL, sekali lagi itu juga didokumentasikan di sini. Jadi jalankan SQL sekarang mengambil string yang menggambarkan permintaan SQL Anda dan
itulah bagian di mana Anda bisa menyelam ke dalam SQL
doc yang saya sebutkan sebelumnya di mana Anda dapat mempelajari semua tentang bahasa SQL.
Sekarang saya ingin membuat tabel di sini yang kita lakukan dengan membuat perintah tabel dan Anda
tidak perlu menulis
ini dalam huruf besar, saya hanya melakukan ini untuk memperjelas bahwa ini adalah perintah standar yang dibangun ke dalam bahasa SQL dan saya ingin
buat tabel
jika tidak ada yang kita lakukan dengan jika tidak ada batasan di sini dan sekarang nama tabel akan menjadi tempat,
huruf kecil, sekarang itu hal
dinamis saya sendiri di sini, benar saya ingin
memberi nama tempat dan sekarang antara tanda kurung, Anda mengkonfigurasi apa yang ada di tabel dan setelah
itu, Anda dapat menambahkan tanda titik koma.
Jadi sekarang kita mendefinisikan bidang yang berbeda yang ingin kita miliki dalam tabel itu,
kolom yang berbeda sehingga untuk mengatakan dan saya ingin memiliki kolom ID dan saya akan mengatur ini menjadi tipe integer yang merupakan
salah satu tipe data yang didukung
dalam SQL dan itu akan menjadi kunci utama yang berarti itu juga akan dipaksa menjadi unik, Anda tidak dapat
memiliki ID yang sama dua kali di sana dan itu akan membuat otomatis ID itu untuk
Anda yang sangat nyaman dan tidak boleh nol,
jadi menambahkan nilai kosong di sana tidak akan diizinkan. Sekarang dengan koma, kita dapat menambahkan kolom
berikutnya yang ingin kita miliki dan itu akan menjadi judul saya.
Sekarang judul harus bertipe teks dan Anda juga dapat menambahkan bukan nol di sana jika Anda mau, semua
data saya seharusnya tidak nol sebenarnya.
Sekarang selain judul, saya juga ingin agar imageUri disimpan di sana dan itu juga teks
yang bukan nol.
Tentu saja teks dan bukan file atau sesuatu seperti itu karena kita tidak
menyimpan file dalam database, kita menyimpan path ke file dalam database yang merupakan
string dan sekarang sesuatu yang lain kita akan butuhkan nanti yang Saya juga sudah ingin mengatur adalah alamat
saya yang merupakan teks, yang harus berupa string yang menggambarkan alamat tempat dan bidang garis lintang atau hanya lat yang
nyata, yang merupakan angka titik apung di akhir dan bujur di sini disingkat dengan lng yang juga nyata dan ini
semua tidak nol.
Sekarang kami belum mengambil lokasi, tetapi kami akan melakukannya nanti dan kami akan menyatakan lokasi
sebagai kombinasi garis lintang dan garis bujur yang merupakan cara standar untuk mengekspresikan titik di dunia.
Jadi ini membuat tabel seperti itu sekarang jika belum ada.
Sekarang jalankan metode SQL juga mengambil argumen kedua yang merupakan array argumen yang akan ikut bermain nanti yang belum kita butuhkan,
ini akan menjadi argumen dinamis yang dapat
Anda masukkan ke dalam permintaan ini, tetapi kami tidak membutuhkannya di sini dan maka kita
memiliki dua fungsi di sini sebagai argumen nomor tiga dan empat. Fungsi pertama yang kami lewati adalah
fungsi sukses, ini
dijalankan jika perintah ini berhasil.
Argumen kedua adalah fungsi kesalahan yang dijalankan jika ini gagal.
Sekarang argumen pertama untuk masing-masing fungsi di sini dan fungsi-fungsi ini dieksekusi atas nama Anda oleh paket SQL tentu
saja, jadi fungsi-fungsi ini
selalu sebagai argumen pertama pada dasarnya mendapatkan permintaan Anda dieksekusi dan dengan menambahkan garis
bawah sebagai nama di sini, saya memberi sinyal bahwa Saya tidak peduli tentang ini,
tetapi saya tertarik pada argumen kedua dan
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.
Jadi di sini, saya akan membuat janji dengan menggunakan janji baru, janji yang dibangun ke dalam Javascript dan didukung oleh
versi Javascript Bereaksi kegunaan asli dan janji mengambil fungsi yang mengambil tekad dan fungsi penolakan sebagai argumen dan sekarang
kita bisa memindahkan
basis data ini kode transaksi di sana dan dalam kasus sukses, saya sebut tekad yang berarti bahwa janji
luar akan diselesaikan, dalam kasus kesalahan, saya sebut tolak dan teruskan kesalahan saya di
sini dan kemudian saya dapat mengembalikan janji di sini secara keseluruhan
dalam metode init saya dan sekarang saya dapat memanggil metode init dari tempat lain di aplikasi dan
saya mendapatkan kembali janji yang akan menyelesaikan jika kita berhasil menginisialisasi database, jadi
dalam membuat tabel atau jika kita menghadapi kesalahan. Ngomong-ngomong jika tidak ada tabel yang dibuat karena sudah
ada, kami tidak akan mendapatkan kesalahan tetapi kami masih akan berakhir dalam kasus sukses. Jadi dengan ini, kami masih tidak menyimpan apa pun
di database tetapi kami sedang menyiapkan database.
Jadi sekarang mari kita pastikan kita memanggil init dan tentu saja tempat untuk menyebutnya adalah aplikasi. File js karena
kami ingin menginisialisasi database
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
yang tidak mengejutkan adalah fungsinya dan karenanya di sini ketika aplikasi ini. File js dieksekusi, ketika kita juga
menginisialisasi toko Redux dan seterusnya, saya ingin memanggil init di sini dan sekarang init berhasil atau tidak,
jadi untuk sekarang saya hanya akan menambahkan blok lalu di mana saya katakan konsol log menginisialisasi basis data, jadi itulah
kasus
sukses atau blok tangkap di mana kita mendapatkan kesalahan potensial di mana saya konsol log menginisialisasi db gagal dan
di mana saya kemudian juga konsol log kesalahan yang kita dapatkan. Dan jika kita sekarang menyimpan ini, Anda harus melihat di sini di
log inisialisasi basis data yang merupakan output dari iPhone dan sekarang dimulai di Android, Anda melihatnya
di sana untuk Android juga.
Agar berfungsi dan sekarang kita punya basis data yang diinisialisasi, saatnya untuk sekarang juga menambahkan lebih banyak metode untuk memastikan kita juga
dapat memasukkan data dan kemudian juga tentu saja, mengambil data.