شرح - sqlite in android studio




كيف أقوم بإنشاء قاعدة بيانات في android؟ (3)

أحتاج إلى إجراء خطوة بخطوة لإنشاء قاعدة بيانات في Android.


إنشاء قاعدة بيانات:

db= this.openOrCreateDatabase("db_hw3", MODE_PRIVATE, null); 

لاحظ أنه من الممارسات الجيدة أن تقوم بلف جميع الوصول إلى البيانات الخاصة بك إلى ContentProviders


قاعدة البيانات مهمة في البرمجة. تستخدم العديد من رموزنا دائمًا البيانات المراد معالجتها وحفظها. تمامًا مثل أي بيئة برمجة أخرى ، يدعم Android أيضًا برمجة قواعد البيانات. يمكنك استخدام قاعدة البيانات الافتراضية المدعومة من قبل android ، SQLiteDatabase .

يمكن أن تحتوي قاعدة البيانات في SQLiteDatabase على أكثر من جدول.مساعدة لدينا قاعدة بيانات واحدة PERSONALDB وجدول BIODATA واحد. هيكل BIODATA هو:

_id integer
code string
name string
gender string

_id is for key increment,

code name gender هو لوصف person .

عندما يتم استدعاء البرنامج لأول مرة ، يجب أن نتأكد من فتح قاعدة البيانات والجدول ، إذا كان موجودًا. إذا لم يكن الأمر كذلك ، فعلينا إنشاء قاعدة بيانات وجدول. كمثال من Android notepad sample ، وهنا هو الطبقة PersonDbHelper للتلاعب الجدول PersonDbHelper .

import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class PersonDbHelper {
    class Row extends Object {
        public long _Id;
        public String code;
        public String name;
        public String gender;
    }

    private static final String DATABASE_CREATE =
        "create table BIODATA(_id integer primary key autoincrement, "
            + "code text not null,"
            + "name text not null"
            +");";

    private static final String DATABASE_NAME = "PERSONALDB";

    private static final String DATABASE_TABLE = "BIODATA";

    private static final int DATABASE_VERSION = 1;

    private SQLiteDatabase db;

    public PersonDbHelper(Context ctx) {
        try {
            db = ctx.openDatabase(DATABASE_NAME, null);
        } catch (FileNotFoundException e) {
            try {
                db =
                    ctx.createDatabase(DATABASE_NAME, DATABASE_VERSION, 0,
                        null);
                db.execSQL(DATABASE_CREATE);
            } catch (FileNotFoundException e1) {
                db = null;
            }
        }
    }

    public void close() {
        db.close();
    }

    public void createRow(String code, String name) {
        ContentValues initialValues = new ContentValues();
        initialValues.put("code", code);
        initialValues.put("name", name);
        db.insert(DATABASE_TABLE, null, initialValues);
    }

    public void deleteRow(long rowId) {
        db.delete(DATABASE_TABLE, "_id=" + rowId, null);
    }

    public List<Row> fetchAllRows() {
        ArrayList<Row> ret = new ArrayList<Row>();
        try {
            Cursor c =
                db.query(DATABASE_TABLE, new String[] {
                    "_id", "code", "name"}, null, null, null, null, null);
            int numRows = c.count();
            c.first();
            for (int i = 0; i < numRows; ++i) {
                Row row = new Row();
                row._Id = c.getLong(0);
                row.code = c.getString(1);
                row.name = c.getString(2);
                ret.add(row);
                c.next();
            }
        } catch (SQLException e) {
            Log.e("Exception on query", e.toString());
        }
        return ret;
    }

    public Row fetchRow(long rowId) {
        Row row = new Row();
        Cursor c =
            db.query(true, DATABASE_TABLE, new String[] {
                "_id", "code", "name"}, "_id=" + rowId, null, null,
                null, null);
        if (c.count() > 0) {
            c.first();
            row._Id = c.getLong(0);
            row.code = c.getString(1);
            row.name = c.getString(2);
            return row;
        } else {
            row.rowId = -1;
            row.code = row.name= null;
        }
        return row;
    }

    public void updateRow(long rowId, String code, String name) {
        ContentValues args = new ContentValues();
        args.put("code", code);
        args.put("name", name);
        db.update(DATABASE_TABLE, args, "_id=" + rowId, null);
    }
    public Cursor GetAllRows() {
        try {
            return db.query(DATABASE_TABLE, new String[] {
                    "_id", "code", "name"}, null, null, null, null, null);
        } catch (SQLException e) {
            Log.e("Exception on query", e.toString());
            return null;
        }
    }
}

في طريقة onCreate ، عليك فقط وضع أمر واحد أدناه لتهيئة قاعدة البيانات: ...

Db = new PersonDbHelper(this);

...

سيحاول فتح "PersonalDB" أولاً.إذا لم يكن موجودًا ، فسوف ينشئ قاعدة بيانات. في هذا الفصل "PersonDbHelper" ، لديك أساليب لإدخال ، حذف ، تحديث ، الاستعلام عن الجدول.

هنا هو المرجع إلى البرنامج التعليمي أعلاه:

إنشاء أول قاعدة بيانات android

يمكنك أيضا أن تذهب من خلال:

http://www.devx.com/wireless/Article/40842

http://www.vogella.de/articles/AndroidSQLite/article.html

أتمنى أن يساعدك هذا.







sqlite