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 ออกมาเพื่อดูว่าดาต้าเบสของเรามีข้อผิดพลาดอะไรไหม ส่วนการลบและการแก้ไขข้อมูลก็คล้ายกับการเพิ่มข้อมูล สำหรับบทความนี้ก็คงต้องขอจบไว้เพียงเท้านี้หากมีข้อสงสัยสามารถคอมเมนต์ไว้ที่โพสต์ด้านเลยครับสำหรับวันนี้สวัสดีครับ



ความคิดเห็น
แสดงความคิดเห็น