الكتابة في قواعد البيانات على الاندرويد ستوديو insert into database


بعد ما تترقنا في شرح سابق كيفية الوصول الى قاعدة بيانات داخلية مدمجة مع التطبيق سنقوم بشرح كيفية الكتابة في قواعد بيانات  اس كيو ال من خلال تطبيق اندرويد بطريقة بسيطة يمكنك متابعة الشرح السابق من خلال الرابط التالي الاتصال بقاعدة البيانات في الاندرويد .
اولا سنقوم بفتح مشروع جديد تم نافدة جديدة ساترك الاسم كما هو Main Activity
يمكنك انشاء قاعدة بيانات جديدة ساسميها dbfile وملئها بما تريد عبر برنامج sqllite db ثم تقوم بانشاء ملف Assest في مجلد res و نقوم بلصق قاعدة البيانات داخله
بعد ذلك نقوم بانشاء كلاس جديد نسميه dabase 
قم بنسخ الكود التالي اليه
dabase.class 
public class dabase extends SQLiteOpenHelper {

    String DB_PATH = null;
    private static String DB_NAME = "dbfile.db";
    private SQLiteDatabase db;
    private final Context myContext;
    public dabase(Context context) {
        super(context, DB_NAME, null, 10);
        this.myContext = context;
        this.DB_PATH = "/data/data/" + context.getPackageName() + "/" + "databases/";
        Log.e("Path 1", DB_PATH);
    }


    public void createDataBase() throws IOException {
        boolean dbExist = checkDataBase();
        if (dbExist) {
        } else {
            this.getReadableDatabase();
            this.getWritableDatabase();
            try {
                copyDataBase();
            } catch (IOException e) {
                throw new Error("Error copy database");
            }
        }
    }

    public boolean checkDataBase() {
        SQLiteDatabase checkDB = null;
        try {
            String myPath = DB_PATH + DB_NAME;
            checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
        } catch (SQLiteException e) {
        }
        if (checkDB != null) {
            checkDB.close();
        }
        return checkDB != null ? true : false;
    }

    public void copyDataBase() throws IOException {
        InputStream myInput = myContext.getAssets().open(DB_NAME);
        String outFileName = DB_PATH + DB_NAME;
        OutputStream myOutput = new FileOutputStream(outFileName);
        byte[] buffer = new byte[10];
        int length;
        while ((length = myInput.read(buffer)) > 0) {
            myOutput.write(buffer, 0, length);
        }
        myOutput.flush();
        myOutput.close();
        myInput.close();

    }

    private void openDataBase() throws SQLException {
        String myPath = DB_PATH + DB_NAME;
        db = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);

    }
    @Override
    public synchronized void close() {
        if (db != null)
            db.close();
        super.close();
    }


    @Override
    public void onCreate(SQLiteDatabase db) {
    }
    public void getOpen(){
        openDataBase();
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        if (newVersion > oldVersion)
            try {
                copyDataBase();
            } catch (IOException e) {
                e.printStackTrace();

            }
    }
    public Cursor insert(String question,String choise1) {
      /*  ContentValues update=new ContentValues();
        update.put("true",right);
        db.update(table, update, "where id=1", null);*/
        db.execSQL("insert into driver(question,choise1)"+" values("+question+","+choise1+") WHERE id="+id+"");
        return null;
    }
    }
بعد ننتقل الى Main activity وننقل الكود التالي
MainActivity.class

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        EditText ques=(EditText)findViewById(R.id.ques);
        EditText choise1=(EditText)findViewById(R.id.choise1);
        String Gques=ques.getText().toString();
        String Gchoise1=choise1.getText().toString();
        try
        {
            //database intialize
            dabase myDbHelper = new dabase(getApplicationContext());
            try {
                myDbHelper.getOpen();
            } catch (SQLException sqle) {
                throw sqle;
            }
            myDbHelper.insert(Gques,Gchoise1);


}catch (Exception e){}
هل ترغب في مثل هذه التدوينات

اسماعيل ايت بلا

ببساطة ارغب في تجربة جديدة من التعلم من خلال مشاركة ما تعلمه يجبرني ذلك على البحث لمدة طويلة مما يجعل الموقع جديرا بالثقة

اترك لنا تعليقا

الاشتراك بالقائمة البريدية

توصل باحدث مواضيعنا و كن على اطلاع باخر اخبار وتقنيات الاندرويد