Database ใช้กันยังไง?


วันนี้เราก็จะคุยกันในเรื่องของการใช้งาน Database ใน Android กัน แอนดรอย์ก็มีดาต้าเบสตัวนึงที่ชื่อ SQLite เป็นฐานข้อมูลของในตัวแอนดรอย์โดยไม่ต้องมีการติดตั้งอะไรเพิ่มเติม เรามาดูกันเลยครับว่ามีวิธีในการเขียนโค้ดกันยังไง
สร้างไฟล์ java/AndroidDatase.java

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class AndroidDatase extends SQLiteOpenHelper {

    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = "mydatabase";
    private static final String TABLE_NAME = "mydb";

    public AndroidDatase(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    public AndroidDatase(Context context){
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " +TABLE_NAME +
                "(Id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE," +
                "Column1 TEXT ," +
                "Column2 TEXT ," +
                "Column3 TEXT ," +
                
                "Column4 TEXT );");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

    public void setInsertDatabaseAll(String column1,String column2,String column3,String column4){
        try {
            SQLiteDatabase db;
            db = this.getWritableDatabase();

            ContentValues Val = new ContentValues();
            //Val.put("Id",id);
            Val.put("Column1",column1);
            Val.put("Column2",column2);
            Val.put("Column3",column3);
            Val.put("Column4",column3);
           
            db.insert(TABLE_NAME,null,Val);
            db.close();


        }catch (Exception e){

        }

    }

    public void setUpdateColumn1(String id,String column1){
        try {
            SQLiteDatabase db;
            db = this.getWritableDatabase();

            ContentValues Val = new ContentValues();
            Val.put("Column1", column1);

            db.update(TABLE_NAME,Val,"Id =?",new String[]{String.valueOf(id)});
            db.close();


        }catch (Exception e){

        }

    }

    public void setDeleteById(String id){
        try {
            SQLiteDatabase db;
            db = this.getWritableDatabase();

            db.delete(TABLE_NAME,"Id =?",new String[]{String.valueOf(id)});
            db.close();

        }catch (Exception e){

        }

    }

    public String[][] getSelectAll(){

        try {
            String StrID[][] = null;
            SQLiteDatabase db;
            db = this.getReadableDatabase();
            
            Cursor cursor = db.query(TABLE_NAME,new String[] {"*"},null,null,null,null,null);

            if(cursor != null){

                if (cursor.moveToFirst()){
                    StrID = new String[cursor.getCount()][cursor.getColumnCount()];
                    int i= 0;
                    do{
                        StrID [i][0] = cursor.getString(0);
                        StrID [i][1] = cursor.getString(1);
                        StrID [i][2] = cursor.getString(2);
                        StrID [i][3] = cursor.getString(3);
                       
                        i++;
                    }while (cursor.moveToNext());
                }
            }else {

            }

            db.close();
            return StrID;

        }catch (Exception e){
            return null;
        }

    }

}


เห็นแล้วดูแหมือนเยอะใช่ไหมครับ งั้นเรามาเรียนรู้จากการใช้งานกันเลยครับ
เปิดไฟล์ layout/activity_main.xml สร้างปุ๋มขึ้นมาเพื่อทดสอบดาต้าเบส
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"       
    tools:context="com.geekcreator.MainActivity">

<Button
            android:id="@+id/button"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="Click!"
            />

</RelativeLayout>

เปิดไฟล์ java/MainActivity.java

public class MainActivity extends AppCompatActivity{

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final 

         Button button = (Button)findViewById(R.id.button);
         button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        try{
            AndroidDatabase database = new AndroidDatabase(MainActivity.this);
            //วิธีการเพิ่มข้อมูล
             database.getWritableDatabase();
             database.setInsertDatabaseAll("data1","data2","data3","data4");
           //วิธีการอ่านข้อมูล
             database.getReadableDatabase();
             String data[][]  = database.getSelectAll();

            //ทำการ Toast  id ของข้อมูลออกมาดูเพื่อทดสอบ
            Toast.makeText(MainActivity.this, ""+data[data.length-1][0], Toast.LENGTH_LONG).show();
             
        }catch(Exception e){
        //หากเกิดข้อผิดพลาด
        Toast.makeText(MainActivity.this, ""+e, Toast.LENGTH_LONG).show();
        }
        }
    });
            
}

}


data[data.length-1][0] คือ ข้อมูลตัวสุดท้ายของ Column id เราต้องการให้แสดงค่า id ออกมาเพื่อดูว่าดาต้าเบสของเรามีข้อผิดพลาดอะไรไหม ส่วนการลบและการแก้ไขข้อมูลก็คล้ายกับการเพิ่มข้อมูล สำหรับบทความนี้ก็คงต้องขอจบไว้เพียงเท้านี้หากมีข้อสงสัยสามารถคอมเมนต์ไว้ที่โพสต์ด้านเลยครับสำหรับวันนี้สวัสดีครับ

ความคิดเห็น

บทความที่ได้รับความนิยม