Xamarin

Flutter: จะใช้ Database ลืมอะไรหรือเปล่า?

เรื่องที่เกี่ยวข้อง - Dart, Flutter

อันนี้เป็น tip & trick อย่างหนึ่งที่เรียนรู้ระหว่างการทำโปรเจคตัวหนึงด้วย Google Flutter ครับ

พอดีมาถึงจุดที่ต้องการบันทึกข้อมูลเก็บไว้ในตัวแอพ ก็จะมีหลายวิธีเลย ไม่ว่าจะเป็น

  1. Share Preference (เก็บข้อมูลเล็กๆ)
  2. SQLite (เก็บแบบโครงสร้างใหญ่หน่อย และเป็น Relational Data)
  3. แบบ NoSQL (อันนี้แบบสำหรับคนติด MongoDB จากการทำเว็บ)

แต่ถ้าเราเลือก 2 แบบหลัง ส่วนนี้จะมีการทำงานเกี่ยวกับการเขียนไฟล์ลงบนเครื่องของลูกค้าด้วย นั่นก็คือไฟล์ Database นั่นล่ะครับ

ซึ่งการทำงานที่เห็นกันบ่อยๆ คือการใช้ package ที่ชื่อ path_provider ในการชี้ที่อยู่ในการเขียนไฟล์ฐานข้อมูลลงไปในตัวแอพของเรา

หลายๆ ครั้งเราจะลืมใช้ path_provider นี้ในการชี้ตำแหน่งไฟล์ครับ เช่นการเขียนลงไปในโฟลเดอร์ Document ของตัวแอพเรา สามารถหาตำแหน่งได้โดยใช้ function ของ path_provider

var docDir = await getApplicationDocumentsDirectory();

ถ้าจู่ๆ เราเขียนไฟล์ลงไปโดยตรง โดยที่ไม่ได้ชี้เข้าไปในส่วนที่ระบบอนุญาตให้เราทำงานได้ ก็จะทำให้เกิด error ขึ้น

ด้านล่างจึงเป็นโค้ดที่ควรใช้ในการทำงานกับไฟล์ Database หรือการบันทึกไฟล์บ่อยๆ ครับ

void connect() async {
    // get the application documents directory
    var dir = await getApplicationDocumentsDirectory();
    // ให้แน่ใจว่ามีโฟลเดอร์นี้อยู่จริงๆ นะ ไม่งั้น error อีก
    await dir.create(recursive: true);
    // สร้างที่อยู่ของไฟล์ database แบบเต็ม
    var dbPath = join(dir.path, this.dbName);
   
    // ตรงนี้จะเอา dbPath ไปใช้กับ SQFLite กับ NoSQL ก็ตามสบายครับผม
  }

เริ่มต้นเรียนรู้ Google Flutter กับโค้ชพลได้ที่

คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter

เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

เริ่มต้นยุค AI ด้วยคอร์สฟรี และพรีเมี่ยม กับพล

หากชอบสิ่งที่พลเล่า เรื่องที่พลสอน สามารถสนับสนุนพลโดยการเข้าเรียนคอร์สออนไลน์ของพลนะคร้าบ

  • เข้าใจง่าย ใช้ได้จริง ออกแบบการสอนอย่างเข้าใจโดยโค้ชพล
  • มีคอร์สสำหรับคนใช้งานทั่วไป จนถึงเรียนรู้เพื่อใช้งานในสายอาชีพขั้นสูง
  • ทุกคอร์สมีใบประกาศณียบัตรรับรองหลังเรียนจบ

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save