1 00:00:02,180 --> 00:00:05,750 Dengan database diinisialisasi, mari kita pastikan kita dapat menyimpan data di sana. 2 00:00:05,750 --> 00:00:13,460 Jadi kembali ke db. file js di folder helpers, kita dapat menambahkan konstanta baru, masukkan 3 00:00:13,460 --> 00:00:14,850 tempat misalnya yang 4 00:00:15,110 --> 00:00:21,650 saya ekspor dan sekarang di sini saya ingin mendapatkan judul tempat, saya ingin mendapatkan imageUri, saya ingin mendapatkan alamat 5 00:00:21,930 --> 00:00:27,770 dan juga lintang dan bujur, jadi saya ingin mendapatkan semua data yang membentuk tempat dan di sana, 6 00:00:27,800 --> 00:00:33,950 sekarang saya ingin memasukkan tempat ke dalam basis data. Untuk itu, kami akan menggunakan sintaks yang sama 7 00:00:33,950 --> 00:00:39,890 seperti di sini sehingga saya bisa menyalin ini karena saya juga ingin memiliki janji sebagai pembungkus di sini 8 00:00:39,890 --> 00:00:45,430 sehingga saya dapat dengan mudah menggunakan itu dan menangkap atau async menunggu di tempat saya memanggil tempat 9 00:00:45,560 --> 00:00:49,010 memasukkan tapi tentu saja kueri yang saya jalankan sekarang berbeda. 10 00:00:49,010 --> 00:00:52,380 Alih-alih membuat tabel, saya sekarang ingin memasukkan 11 00:00:52,400 --> 00:00:56,620 data ke dalam tabel dan itu selesai dengan perintah insert to. 12 00:00:56,660 --> 00:01:02,450 Sekarang Anda perlu menentukan tabel dan tempat-tempat itu dan kemudian di antara tanda kurung, bidang yang ingin Anda targetkan di 13 00:01:02,450 --> 00:01:03,380 sana dan 14 00:01:03,410 --> 00:01:08,840 tentu saja saya ingin menargetkan semua bidang kecuali ID karena seperti yang saya sebutkan, itu akan di-autogenerasi yang sangat 15 00:01:08,840 --> 00:01:10,320 nyaman untuk digunakan. Tentu saja 16 00:01:10,520 --> 00:01:15,510 tetapi saya ingin menargetkan bidang judul saya dan sekarang Anda perlu memastikan Anda cocok dengan nama-nama yang 17 00:01:15,510 --> 00:01:17,360 Anda siapkan di sana untuk kolom 18 00:01:17,450 --> 00:01:20,150 Anda, Anda harus mencocokkan nama-nama ini di sini sekarang. 19 00:01:20,180 --> 00:01:24,480 Urutannya tidak harus sama tetapi penamaannya penting, jadi saya ingin 20 00:01:24,500 --> 00:01:27,400 menargetkan judul, imageUri, itu juga 21 00:01:27,410 --> 00:01:30,360 nama yang saya pilih di sana, kan? 22 00:01:30,440 --> 00:01:32,660 Jadi imageUri, alamat, lintang dan 23 00:01:32,660 --> 00:01:34,610 bujur dan sekarang kita 24 00:01:34,610 --> 00:01:38,110 perlu menentukan nilai apa yang harus dimasukkan di sana. 25 00:01:38,120 --> 00:01:44,260 Anda melakukannya dengan menambahkan kata kunci nilai di sini setelah daftar kolom yang ingin Anda targetkan dan sekarang 26 00:01:44,310 --> 00:01:50,330 Anda memiliki sepasang tanda kurung di sini di mana Anda menentukan nilai yang harus masuk ke masing-masing 27 00:01:50,330 --> 00:01:51,310 kolom ini. 28 00:01:51,320 --> 00:01:56,120 Sekarang urutan nilai di sini tentu saja harus sesuai dengan urutan pengidentifikasi kolom yang Anda 29 00:01:56,150 --> 00:02:02,820 miliki di sini, sehingga nilai pertama yang Anda masukkan di sini akan masuk ke judul, imageUri adalah nilai kedua dan seterusnya. 30 00:02:02,840 --> 00:02:08,570 Sekarang apa yang bisa Anda lakukan di sini adalah Anda dapat menggunakan tentu saja kutu 31 00:02:08,570 --> 00:02:15,970 kembali bukan tanda kutip tunggal dan kemudian misalnya menyuntikkan judul di sini dan kemudian memiliki koma dan kemudian imageUri dan sebagainya. 32 00:02:15,970 --> 00:02:20,270 Anda bisa melakukan itu dan itu akan berhasil 33 00:02:20,290 --> 00:02:21,940 tetapi ini tidak 34 00:02:21,940 --> 00:02:32,350 akan baik, ini tidak aman, itu membuka pintu untuk pola serangan yang disebut SQL injection, di mana pengguna bisa memasukkan kode berbahaya 35 00:02:32,350 --> 00:02:37,240 di sana dan menjalankan kueri lain yang dapat memecahkan data. 36 00:02:37,240 --> 00:02:42,210 Tentu saja dalam aplikasi ini yang merupakan basis data lokal di perangkat pengguna ini, yang mungkin 37 00:02:42,210 --> 00:02:47,830 tidak terlalu buruk tapi tetap kami ingin mempertahankannya dan karena itu di sini, Anda benar-benar menggunakan beberapa penampung, Anda menambahkan 38 00:02:47,850 --> 00:02:52,960 tanda tanya di sini dan Anda perlu untuk menambahkan tanda tanya sebanyak yang Anda butuhkan untuk memasukkan nilai. 39 00:02:53,050 --> 00:02:58,450 Jadi di sini saya memasukkan lima nilai, maka di sini saya memiliki lima tanda tanya yang dipisahkan oleh koma. 40 00:02:58,540 --> 00:03:03,700 Sekarang nilai konkret untuk tanda tanya disediakan dalam argumen kedua yang Anda lewati untuk 41 00:03:03,700 --> 00:03:07,990 mengeksekusi SQL, array argumen ini. Sebelumnya itu kosong, sekarang 42 00:03:08,020 --> 00:03:11,860 kita mengisi argumen dalam urutan yang kita butuhkan, 43 00:03:11,860 --> 00:03:19,570 jadi judul pertama, lalu imageUri dan seterusnya dan paket SQL kemudian akan menukar tanda tanya ini dengan 44 00:03:19,810 --> 00:03:27,030 nilai kita tetapi tidak sebelum memvalidasi mereka untuk memastikan bahwa serangan injeksi tidak bisa terjadi. 45 00:03:27,070 --> 00:03:33,050 Jadi kita mendapatkan beberapa validasi otomatis tambahan dengan menggunakan pendekatan ini dan kemudian kita dapat memasukkan judul di sini, maka 46 00:03:33,160 --> 00:03:36,040 bagian kedua dari data adalah imageUri, maka kita memerlukan alamat, 47 00:03:36,280 --> 00:03:37,450 maka kita membutuhkan 48 00:03:37,450 --> 00:03:40,210 garis lintang dan kemudian kita membutuhkan garis bujur, jadi 49 00:03:40,240 --> 00:03:47,310 ini adalah bagaimana kami sekarang mengirimkan data kami ke dalam kueri ini. Sekarang dalam fungsi-fungsi sukses ini, seperti yang saya 50 00:03:47,320 --> 00:03:52,510 sebutkan argumen pertama selalu seperti pengulangan permintaan Anda tetapi argumen kedua adalah kesalahan 51 00:03:52,510 --> 00:03:56,540 atau di sini hasil dari permintaan ini dan di sini 52 00:03:56,650 --> 00:04:02,910 saya ingin menyelesaikan hasil ini sehingga di tempat di mana kami menyebutnya insert place, kami 53 00:04:02,910 --> 00:04:09,490 benar-benar kemudian dapat mendengarkan penyelesaian dari janji dan mendapatkan hasil kami dari permintaan ini yang seharusnya menjadi 54 00:04:09,490 --> 00:04:12,640 beberapa informasi tentang catatan yang telah dibuat. 55 00:04:12,650 --> 00:04:18,730 Jadi sekarang kita bisa memanggil tempat memasukkan dan tentu saja tempat di mana saya ingin menyebutnya lagi adalah file tindakan 56 00:04:18,730 --> 00:04:19,370 tempat saya. 57 00:04:19,610 --> 00:04:21,810 Di sana kami memindahkan gambar, di 58 00:04:21,830 --> 00:04:28,700 sana saya sekarang juga ingin menjangkau database saya dan menambahkan entri. Untuk melakukan itu di sini pertama-tama, mari 59 00:04:28,910 --> 00:04:40,980 kita mengimpor metode tempat insert ini dari folder helpers dan di sana, dari file db dan dengan yang diimpor, di tambahkan tempat setelah menyelesaikan sistem 60 00:04:41,100 --> 00:04:46,450 file kita dan seterusnya, di sini saya tentu saja juga, masih 61 00:04:46,470 --> 00:04:52,290 di blok coba tangkap, ingin mencoba memasukkan data ke dalam basis data. 62 00:04:52,380 --> 00:04:53,520 Ini juga 63 00:04:53,520 --> 00:04:57,600 bisa gagal, jadi memilikinya di blok percobaan bukanlah ide terburuk. 64 00:04:57,630 --> 00:05:03,930 Jadi di sini saya dapat memanggil tempat penyisipan dan itu mengembalikan janji karena kami memiliki janji kami sendiri di 65 00:05:03,930 --> 00:05:05,370 sana, jadi kami dapat 66 00:05:05,730 --> 00:05:11,460 menunggu ini dan saya mendapatkan kembali hasil DB saya setelahnya, jadi saya akan menyimpan ini di 67 00:05:11,460 --> 00:05:17,200 tempat yang konstan dan sekarang menyisipkan tempat tentu saja membutuhkan judul, imageUri, alamat, garis lintang dan bujur. 68 00:05:17,270 --> 00:05:19,960 Sekarang karena itu saya akan meneruskan judul saya yang 69 00:05:19,960 --> 00:05:27,240 sudah saya miliki, saya akan meneruskan jalur baru yang merupakan imageUri saya dan sekarang untuk alamat, saya akan menggunakan alamat dummy karena kami belum 70 00:05:27,240 --> 00:05:29,700 memiliki alamat asli. Untuk garis lintang, 71 00:05:29,700 --> 00:05:35,760 saya akan menggunakan angka dummy 15. 6 dan untuk bujur, katakanlah 12. 3. 72 00:05:35,760 --> 00:05:39,750 Sekarang ini mungkin di tengah lautan, saya tidak tahu, tetapi setidaknya 73 00:05:39,780 --> 00:05:45,730 kita memiliki beberapa koordinat di sini yang dapat kita gunakan untuk sekarang sampai kita dapat mengambil lokasi nyata. 74 00:05:45,750 --> 00:05:51,960 Sekarang hasil db ini tentu saja menarik, jadi mari kita konsol login dan mari kita juga memastikan bahwa 75 00:05:51,960 --> 00:05:57,730 kita hanya mengirimkan tindakan ini dan oleh karena itu sentuh toko Redux kita jika kita berhasil dengan 76 00:05:57,730 --> 00:06:00,330 filesystem dan tindakan basis data, jadi di 77 00:06:00,330 --> 00:06:06,690 dalam coba blokir dan sekarang, mari kita lihat ini. Sekarang kita harus dapat menyimpan data dalam 78 00:06:06,690 --> 00:06:07,740 database, jadi 79 00:06:07,770 --> 00:06:11,790 mari kita uji ini di Android di mana kita dapat 80 00:06:11,790 --> 00:06:14,240 mengambil gambar, ini adalah tes. 81 00:06:14,270 --> 00:06:24,980 Mari kita mengambil gambar di sini dan melihat apakah semua itu bekerja sekarang memotong gambar itu dan menyimpan tempat ini. 82 00:06:25,090 --> 00:06:26,280 Ini berfungsi dan 83 00:06:26,380 --> 00:06:31,380 di sini kita melihat beberapa output, kita melihat ini adalah hasil dari tindakan basis data kita 84 00:06:31,480 --> 00:06:37,000 dan kita melihat bahwa satu baris terpengaruh karena satu baris dimasukkan dan kami juga mendapatkan kembali ID 85 00:06:37,000 --> 00:06:38,460 yang secara otomatis dibuat. 86 00:06:38,500 --> 00:06:41,710 Ini adalah ID numerik di sini tapi itu tentu saja tidak 87 00:06:41,710 --> 00:06:47,920 ada masalah, jadi sekarang kita juga dapat menggunakan ID ini dalam peredam kami alih-alih secara manual membuat ID snapshot keadaan 88 00:06:47,920 --> 00:06:49,060 ini di sini. 89 00:06:49,060 --> 00:06:51,520 Jadi itu peningkatan kecil, ketika 90 00:06:51,520 --> 00:06:59,600 kami mengirimkan tindakan kami di sini di tempat data, saya sekarang juga ingin memberikan ID dan ID yang dapat diambil dari 91 00:06:59,600 --> 00:07:06,170 konstanta hasil DB dan di sana, itu di bidang masukkan ID di sini seperti yang Anda lihat 92 00:07:06,170 --> 00:07:13,000 , jadi mari kita akses masukkan ID di sini. Karena itu, sekarang di peredam, kita tidak perlu lagi menghasilkan seperti ini, sebaliknya di sini 93 00:07:13,000 --> 00:07:17,330 kita bisa merujuk ke tindakan. placeData. Indo. 94 00:07:17,330 --> 00:07:22,100 Sekarang perlu diingat ada nomor, di sini saya sebenarnya ingin memiliki string meskipun 95 00:07:22,100 --> 00:07:28,760 Anda juga bisa menyimpan nomor tetapi saya akan mengubahnya menjadi string di sini dan dengan itu, kami sekarang juga 96 00:07:28,760 --> 00:07:34,850 menggunakan ID itu, kami menyimpan itu dalam database. Tentu saja sekarang akan lebih baik untuk memuat semua data kami setiap 97 00:07:34,850 --> 00:07:37,580 kali aplikasi kami restart karena saat ini ketika restart, data masih 98 00:07:37,700 --> 00:07:39,950 hilang, itu tidak benar-benar hilang, itu bukan database tetapi 99 00:07:39,950 --> 00:07:45,230 kami tidak melihatnya di sini karena kami jangan memuat ini ke toko Redux kami yang tentu saja adalah data yang kami 100 00:07:45,230 --> 00:07:46,640 gunakan di aplikasi yang berjalan. 101 00:07:46,940 --> 00:07:50,840 Jadi kita perlu memastikan kita memuat data ke toko Redux ketika aplikasi ini dimulai.