Introduction SQLite Prawit Pimpisan Computer Science RERU
การเก็บข้อมูล ข้อมูลที่ต้องการเก็บไว้ในเครื่องสามารถทำได้หลายวิธีขึ้นอยู่กับลักษณะการใช้งาน เก็บข้อมูลลงไว้ใน App โดยตรง เก็บข้อมูลไว้ที่ Public Directory ที่ App อื่นๆสามารถเปิดดูได้ เก็บลงฐานข้อมูล SQLite ข้อมูลเกี่ยวกับการ Setting จะเก็บด้วย Preference ที่ Android ซึ่งเป็น primitive data เก็บไว้ในเครื่อง
การใช้งานฐานข้อมูล Android รองรับการใช้งานกับฐานข้อมูล Sqlite เป็นฐานข้อมูลที่มีประสิทธิภาพและได้รับความนิยมอย่างสูงในอุปกรณ์พกพา มีรูปแบบการใช้งานลักษณะเดียวกันกับ SQL database โดยทั่วไป
การสร้าง Database และ Table ถ้าเป็นฐานข้อมูลที่ใช้กับ Computer หรือ Server มักสร้าง database ด้วยเครื่องมือจัดการ เช่น MsSQL phpMyAdmin …. อุปกรณ์พกพาจะต้องให้ App นั้นๆ สร้าง Database ให้ โดยทำการสร้างเพียงครั้งเดียว หลังจากนั้นก็ทำการ Read/Write ตามปกติ
ตัวอย่างการสร้างฐานข้อมูลและ Insert ทดลองสร้างฐานข้อมูล การสร้างฐานข้อมูลจะทำการสร้างเพียงครั้งเดียว โยมีการกำหนดพารามิเตอร์เอาไว้คือ CREATE_IF_NECESSARY เมื่อสร้างตารางแล้วตัวอย่างนี้จะทดลองสร้าง insert ข้อมูล
Android Device Monitor Android Device Monitor ใช้สำหรับตรวจสอบไฟล์ และการทำงานของทรัพยากรภายในเครื่อง Android กรณีที่เปิดไม่ได้ ให้เปิดโปรแกรมด้วยสิทธ์ Administrator
การเข้าไปตรวจสอบฐานข้อมูลในเครื่อง
ตรวจสอบ SQLite file ทำการ export ไฟล์ sqlite จาก DDMS
SQLiteOpenHelper การสร้าง Database และ table สามารถสั่งงานโดยตรงได้ Google แนะนำให้สร้าง abstract class ชื่อ SQLiteOpenHelper ไว้สำหรับจัดการฐานข้อมูล การใช้งานจริงต้อง Extends คลาส SQLiteOpenHelper
การ Query ข้อมูล การ query ของ SQLiteOpenHelper สามารถทำได้ 2 วิธี rawQuery – เป็นการ query โดยมีรูปแบบคล้ายกับฐานข้อมูลทั่วไป โดยใช้ Cursor เป็นตัวชี้ ซึ่งใช้ในการตรวจสอบและชี้ไปที่ row query – ใช้อ่านข้อความจากตารางเดียว โดยส่ง argument 7 รายการ
การ Query ข้อมูล - rawQuery เช็คตำแหน่ง isFirst(), isLase(),…. ชี้ไปยังเรคอร์ด moveToFirst(), moveToLase, ….. อ่านค่า/ข้อมูล จากฟิลด์คอลัมน์ที่ต้องการ getInt, getString, … อ่านข้อมูลโครงสร้างหรือ Schema getColumnName, getColumnIndex, …
การ Query ข้อมูล - query ส่ง Argument ตามลำดับดังนี้ String ชื่อตาราง String[] คอลัมน์ที่ทำการเลือก String เงื่อนไข (Where clause) String[] Argument ของเงื่อนไข String Group by String เงื่อนไข having String เงื่อนไขการจัดเรียง
SQLiteOpenHelper ทดลองสร้าง class สำหรับทำหน้าที่ช่วยในการเชื่อมต่อ Database เวลาใช้งานจริงจะเรียกผ่าน Main Activity ให้ทำงานตามต้องการ
การใช้งาน DatabaseHandler ทดสอบเรียกใช้งานฐานข้อมูล
การแสดงข้อมูลด้วย List แสดงการดึง database record ออกมาแสดงเป็น list รายการ เป็นการสร้างแอพในลักษณะของการ Search ข้อมูล เรียกดูข้อมูลโดยการแตะที่รายการ list
Row Layout สร้าง Layout สำหรับ Row เพื่อทำการแสดง Record แต่ละบรรทัด สร้างไฟล์ layout ชื่อ row_layout.xml
activity_main layout แก้ไขไฟล์ activity_main layout ประกอบด้วย ช่องค้นหา(EditText), ปุ่ม และ ListView
MainActivity แก้ไขไฟล์ Java ทำการ extends ListActivity อ่านข้อมูลจาก database แล้วนำมา list ออกรายการ มีเมธอดสำหรับค้นหาข้อมูล เมื่อแตะที่ item แล้วจะไปแสดงผลรายละเอียดในหน้าถัดไป
InputMethodManager คลาสสำหรับซ่อนและแสดง Keyboard โดยจะแสดง Keyboard เมื่อมีการแตะที่ช่อง EditText ซ่อนเมื่อออกจาก EditText หรือกด Enter
getAllRecord Method เมธอดสำหรับเรียกเก็บทุก Record จากฐานข้อมูล
getSearchRecord Method เมธอดสำหรับค้นหารายชื่อ(name) ที่ตรงกับ keyword ที่ค้นหา
ViewRecordActivity สร้าง Ativity แบบ Emply Activity ขึ้นมาเพิ่ม ที่ layout ให้มีเพียง textview ตัวเดียว เพื่อทำการแสดงข้อมูลของ Record ที่ activity มีการทำงานคือ รับข้อมูล intent หมายเลข record มาจากหน้าแรก ทำการอ่าน record ที่เลือก แล้วส่งออกมาเป็น output View activity
Manifest จะมีคลาส ViewRecordActivity เพิ่มเข้าไปในไฟล์โดยอัตโนมัติ