SQLite Database เป็น DBMS ขนาดเล็ก ที่นิยมใช้กันบน Mobile Platform ทั้งหลาย ไม่ว่าจะเป็น Android, iOS, Windows Phone และอื่น ๆ อีกมากมาย
สำหรับ SQLite บน Android นั้น มีเรื่องเล็กน้อยที่ Developer ควรจะรู้ คือว่า Database file ที่สร้างขึ้นมานั้น จะต้องมี Table android_metadata อยู่ด้วย ถึงจะใช้งานได้…
App บน Android มีวิธีการใช้งาน SQLite อยู่หลัก ๆ 2 วิธี คือ
- สร้าง Database file ด้วยชุดคำสั่ง เมื่อใช้งาน App ครั้งแรก
- สร้าง Database file ไว้ก่อน ด้วยเครื่องมือ เมื่อเปิดใช้งาน App ครั้งแรก ค่อย Copy ไปใช้
สำหรับวิธีแรกนั้น เราต้องเขียนคำสั่งสร้าง Database ขึ้นมาเอง สร้าง Table ขึ้นมาเอง และอาจมีการใส่ข้อมูลเริ่มต้นไว้ด้วย ใน Internet มีเขียนอธิบายไว้มากมาย และบทความนี้ ไม่ขออธิบายนะครับ เพราะไม่ได้เน้นเรื่อง Coding
ส่วนวิธีที่สอง การสร้าง Database file ไว้ก่อนนั้น ส่วนใหญ่นิยมใช้เครื่องมือที่ชื่อว่า SQLite Database Browser ซึ่งเป็น Open Source software ที่มีให้ใช้งานบน Windows, Linux และ Mac OS ซึ่งช่วยอำนวยความสะดวกได้มาก
สิ่งนึง ที่ Android Developer มือใหม่ มักไม่รู้ คือ SQLite Database file ที่ใช้บน Android จำเป็นต้องมี Table android_metadata หากไม่มี จะไม่สามารถใช้งานได้
สำหรับบทความนี้ จะเป็นการทดสอบให้เห็นว่า เราควรสร้าง Database file ยังไง ให้สามารถใช้งานบน Android ได้ โดยขอให้ผู้อ่าน ลองทำตามในหัวข้อต่อไป
List of contents
Create SQLite Database with SQLite Database Browser
ก่อนอื่น มาลองทดสอบสร้าง Database file ด้วย SQLite Database Browser กันก่อน
เปิดโปรแกรม SQLite Database Browser ขึ้นมา แล้วสร้าง Database file ใหม่ โดยไปที่เมนู File > New Database (หรือคลิก Icon Create a new database file จาก Toolbar) ตั้งชื่อ Database file ให้เรียบร้อย


กำหนดชื่อ Table และสร้าง Field ตามต้องการ

เมื่อสร้างเสร็จแล้ว จะเห็น Table ใน Database ดังนี้

เซฟไฟล์ให้เรียบร้อย
ทีนี้ลองนำไปใช้งานใน Android ดู จะพบว่า ไม่สามารถใช้งานได้
สาเหตุก็เพราะ Database file ที่สร้างขึ้นมานั้น ไม่มี Table android_metadata นั่นเอง เพราะว่าโปรแกรม SQLite Database Browser ไม่ได้ออกแบบมาเพื่อใช้งานกับ Android โดยเฉพาะ อย่างที่เกริ่นไปตั้งแต่ต้นว่า SQLite นั้น ถูกนำไปใช้บน Mobile Platform ที่หลากหลายนั่นเอง
ครั้นจะสร้าง Table android_metadata ขึ้นมาเอง ก็ไม่ชัวร์ว่าสามารถนำไปใช้ได้หรือไม่
ใครที่ลองสร้าง Table android_metadata บน SQLite Database Browser (ดูรายละเอียดทั้งหมดที่หัวข้อท้าย ๆ) แล้วนำไปใช้งาน รบกวนช่วยแจ้งผลให้ทราบด้วยนะครับ ว่าใช้ได้ไม๊
ถ้าอย่างนั้น จะทำอย่างไรดีล่ะ~!? ดูหัวข้อต่อไปกันเลย
Create SQLite Database with aSQLiteManager
aSQLiteManager เป็นหนนึ่งใน App บน Android ที่สามารถจัดการกับ SQLite Database file ได้ ขอให้ทุกคนติดตั้งลงบน Android Device ของตัวเองให้เรียบร้อย
เปิด App aSQLiteManager ขึ้นมา จะพบหน้าตาของ App ดังนี้
ณ Version ปัจจุบัน บน Android ใช้ชื่อ Icon และชื่อบน Title ว่า dSQLiteManager ไม่รู้ว่าผู้พัฒนาใส่ผิด หรือตั้งใจ หาก Sort ชื่อ App ใน App Drawer เรียงตามตัวอักษร ต้องดูที่ตัว dSQLiteManager นะครับ ผมก็หาชื่อ aSQLiteManager ตั้งนาน

แตะไปที่ New database เพื่อสร้าง SQLite Database file ขึ้นมาใหม่ บน Android

จะเห็นว่า SQLite Database file ที่สร้างขึ้น มี Table android_metadata สร้างขึ้นมาให้อัตโนมัติ

Copy ไฟล์ออกจาก Android มาเปิดบนโปรแกรม SQLite Database Browser ดู ก็จะพบ Table android_metadata เช่นกัน

ลองดูที่ Tab Browse Data จะพบว่า Table android_metadata มีข้อมูลอยู่ 1 Record ตามรูป

SQLite Database file แบบนี้ล่ะ ถึงจะใช้งานบน Android ได้
สำหรับใครที่ต้องสร้าง SQLite Database file ขึ้นใหม่ หากต้องมาทำแบบนี้ทุกครั้ง ก็คงไม่สนุก หากใครได้ลองทำตามขั้นตอนด้านบนมาแล้ว ก็จะได้ไฟล์ต้นฉบับ หรือ Master file สำหรับ SQLite Database มาแล้ว เก็บไฟล์ไว้ให้ดี ๆ แล้ว Copy ไปใช้ต่อได้เลย…
หากใครไม่ได้ทำตาม หรือขี้เกียจทำ ผมมีทางลัดให้ สามารถ Download file base_db.sqlite ไปใช้ได้เลย (สร้างมาตามบทความนี้ล่ะ)
1 2 3 4 5 |
CRC32: 37D97449 MD5: 0C875F041D689C40CAFFA81DC8EE6059 SHA-1: 00E01754B819BB824B47963DB1DE30C49F3AB2A3 |
แต่ลองทำตามหน่อยเถอะ จะได้เรียนรู้ได้ด้วยตัวเองบ้างนะครับ