tejariapp-new-logotejariapp-new-logotejariapp-new-logotejariapp-new-logo
  • صفحه اصلی
  • پروژه ها
    • پروژه طراحی سایت
    • پروژه های اندروید
    • پروژه های تحت ویندوز
    • UI & UX
    • ربات تلگرام
  • سفارش پروژه
    • انجام پروژه اندروید (Android)
    • طراحی و ساخت اپلیکیشن موبایل
    • انجام پروژه طراحی سایت با php
    • انجام پروژه طراحی سایت با Asp.net
    • انجام پروژه سی شارپ
    • فرم سفارش پروژه
  • مدرسه ی تجاری اپ
    • طراحی سایت
    • اندروید
    • سی شارپ
    • آموزش پایگاه داده
    • برنامه های کاربردی
  • لینک های مفید
    • پرداخت آنلاین
    • درباره تجاری اپ
    • تماس با ما
استخدام برنامه نویس متلب
سفارش پروژه
✕
            هیچ نتیجه ای یافت نشدمشاهده همه نتایج

            عملیات CRUD در اندروید با استفاده از دیتابیس SQLite و SqliteOpenHelper

            • صفحه نخست
            • مدرسه ی تجاری اپ آموزش اندروید
            • عملیات CRUD در اندروید با استفاده از دیتابیس SQLite و SqliteOpenHelper
            نمایش عکس در فلاتر Flutter به دو روش آفلاین و آنلاین
            نمایش عکس در فلاتر Flutter به دو روش آفلاین و آنلاین
            16 مهر 1398
            طراحی با نرم افزار Figma در لینوکس ، مک و ویندوز
            طراحی با نرم افزار Figma در لینوکس ، مک و ویندوز
            26 مهر 1398
            منتشر شده توسط مهندس داودی
            آموزش عملیات CRUD با استفاده از دیتابیس SQLite و کلاس SqliteOpenHelper در اندروید

            آموزش عملیات CRUD با استفاده از دیتابیس SQLite و کلاس SqliteOpenHelper در اندروید

            عملیات CRUD در اندروید با استفاده از دیتابیس SQLite و کلاس SqliteOpenHelper ، در هر پلتفرم برنامه نویسی ما ۴ عمل اصلی برای اعمال برروی داده های خود داریم که شامل Create ، Read ، Update و Delete می باشد.

            آموزش عملیات CRUD با استفاده از دیتابیس SQLite و کلاس SqliteOpenHelper در اندروید

            در این پست از تجاری اپ ما عملیات CRUD در اندروید را با استفاده از کلاس SqliteOpenHelper که برای ارتباط با دیتابیس داخلی اندروید Sqlite است انجام خواهیم داد.با زبان های جاوا و کاتلین

            ما یک کلاس model داریم که تمامی عملیات را با این کلاس انجام خواهیم داد.

            توجه:
            کلاس مدل درواقع همان کلاسی است که داده های دریافتی از sqlite را می توان در قالب این کلاس استفاده کرد.

            کلاس مدل ما بدین صورت است:

            همچنین بخوانید: معرفی نرم افزار مدیریت پایگاه داده SQLite Maestro

            جاوا

             public class items {
            int id;
            String desc;
            String alarm;
            String time;
            
            public items(int id, String desc , String alarm , String time){
                this.id = id;
                this.desc = desc;
                this.alarm = alarm;
                this.time = time;
            }
            }
            

            کاتلین

             class Item() {
                 var id: Int = 0;
                 var desc: String = "";
                 var time: String = "";
                 var alaram: String = "";
            constructor( id: Int,  desc: String,  time: String,  alarm: String) : this() {
                this.id = id
                this.desc = desc
                this.time = time
                this.alaram = alaram
            }
            }
            

            حال یک کلاس ایجاد میکنیم که از کلاس SQLiteOpenHelper ارث بری میکند که تمامی عملیات اصلی درون این کلاس انجام خواهد شد.معرفی کلاس بدین صورت خواهد شد:

            جاوا

             public class ItemsDatabaseHelper extends SQLiteOpenHelper {
              public itemsdbh(@Nullable Context context) {
               // Database Info
                 private static final String DATABASE_NAME = "postsDatabase";
                 private static final int DATABASE_VERSION = 1;
                     super(context, DATABASE_NAME, null, DATABASE_VERSION);
                 }
            

            کاتلین

            public class ItemsDatabaseHelper(val context: Context, val dbName:String, val version: Int)
                 : SQLiteOpenHelper(context,dbName,null,version) {
            

            زمان ارث بری از کلاس SQLiteOpenHelper دو متد باید حتما override شوند که شامل onCreate و onUpgrade است.برای ساخت و آپدیت دیتابیس:

            جاوا

                @Override
                 public void onCreate(SQLiteDatabase sqLiteDatabase) {
                     String CREATE_USERS_TABLE = "CREATE TABLE " + TABLE_ITEMS +
                             "(" +
                             KEY_ITEM_ID + " INTEGER PRIMARY KEY," +
                             KEY_ITEM_DESC + " TEXT," +
                             KEY_ITEM_TIME + " TEXT," +
                             KEY_ITEM_ALARM + " TEXT," +
                             ")";
               sqLiteDatabase.execSQL(CREATE_USERS_TABLE);
            }
            
            @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                if (oldVersion != newVersion) {
                    db.execSQL("DROP TABLE IF EXISTS " + TABLE_ITEMS);
                    onCreate(db);
                }
            }
            

            کاتلین

             override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
                     if (oldVersion != newVersion) {
                         db.execSQL("DROP TABLE IF EXISTS " + TABLE_ITEMS);
                         onCreate(db);
                     }
                 }
            override fun onCreate(db: SQLiteDatabase) {
            
                val CREATE_USERS_TABLE = "CREATE TABLE " + TABLE_ITEMS +
                        "(" +
                        KEY_ITEM_ID + " INTEGER PRIMARY KEY," +
                        KEY_ITEM_DESC + " TEXT," +
                        KEY_ITEM_ALARM + " TEXT," +
                        KEY_ITEM_TIME + " TEXT" +
                        ")"
            
                db.execSQL(CREATE_USERS_TABLE)
            }
            

            پیاده سازی 4 عمل Create ، Read ، Update و Delete در اندروید

            در ادامه عملیات CRUD در اندروید را پیاده سازی کرده ایم.

            عمل Create

            ما در متد زیر یک رکورد به جدول اضافه کردیم

            همچنین بخوانید: آموزش بانک اطلاعاتی SQLite در اندروید

            جاوا

              public void addItem(Item item) {
                     SQLiteDatabase db = getWritableDatabase(); 
               db.beginTransaction();
                try {
            
                    ContentValues values = new ContentValues();
                    values.put(KEY_ITEM_ID , item.id);
                    values.put(KEY_ITEM_DESC , item.desc);
                    values.put(KEY_ITEM_TIME , item.time);
                    values.put(KEY_ITEM_ALARM, item.alarm);
            
                    db.insertOrThrow(TABLE_ITEMS, null, values);
                    db.setTransactionSuccessful();
                } catch (Exception e) {
                    Log.d(TAG, "Error while trying to add post to database");
                } finally {
                    db.endTransaction();
                }
            }
            

            کاتلین

            public fun addItem(item: Item){
                val db = writableDatabase
            
                db.beginTransaction()
            
                val values= ContentValues()
                values.put(KEY_ITEM_ID , item.id)
                values.put(KEY_ITEM_DESC , item.desc)
                values.put(KEY_ITEM_TIME , item.time)
                values.put(KEY_ITEM_ALARM, item.alaram)
            
                db.insertOrThrow(TABLE_ITEMS,null,values)
                db.setTransactionSuccessful()
            }
            

            همانطور که مشخصه ابتدا یک آبجکت از نوع کلاس writableDatabase ایجاد کردیم و با دستور beginTransaction متغیر را به نوعی فعال میکنیم ،سپس مقادیر مورد نیاز را با کلاس ContentValues ایجاد میکنیم و درنهایت با دستور insert رکورد را ایجاد میکنیم.

            عمل Read

            با متد زیر ما تمامی اطلاعات درون جدول را میخوانیم و درقالب لیستی از نوع کلاس مدل برمی گردانیم

            جاوا

             public List getAllItems() {
                     List list = new ArrayList<>();   
            
                String itemQuery = String.format(
                        "SELECT * FROM %s ",
                        TABLE_ITEMS
                );
            
                SQLiteDatabase db = getReadableDatabase();
                Cursor cursor = db.rawQuery(itemQuery, null);
                try {
                    if (cursor.moveToFirst()) {
                        do {
                            Item newPost = new Item();
                            newPost.id= cursor.getInt(cursor.getColumnIndex(KEY_ITEM_ID));
                            newPost.desc= cursor.getString(cursor.getColumnIndex(KEY_ITEM_DESC));
                            newPost.time= cursor.getString(cursor.getColumnIndex(KEY_ITEM_TIME));
                            newPost.alarm= cursor.getString(cursor.getColumnIndex(KEY_ITEM_ALARM));
                            list.add(newPost);
                        } while(cursor.moveToNext());
                    }
                } catch (Exception e) {
                    Log.d(TAG, "Error while trying to get posts from database");
                } finally {
                    if (cursor != null && !cursor.isClosed()) {
                        cursor.close();
                    }
                }
                return list;
            }
            

            کاتلین

               public fun getAllItems(): List{
                     val list = ArrayList()    
            val itemQuery = String.format(
                    "SELECT * FROM %s ",
                    TABLE_ITEMS
                )
            
                val db = readableDatabase
                val cursor = db.rawQuery(itemQuery, null)
                try {
                    if (cursor!!.moveToFirst()) {
                        do {
                            val newPost = Item()
                            newPost.id= cursor.getInt(cursor.getColumnIndex(KEY_ITEM_ID))
                            newPost.desc= cursor.getString(cursor.getColumnIndex(KEY_ITEM_DESC))
                            newPost.time= cursor.getString(cursor.getColumnIndex(KEY_ITEM_TIME))
                            newPost.alaram= cursor.getString(cursor.getColumnIndex(KEY_ITEM_ALARM))
                            list.add(newPost)
                        } while (cursor.moveToNext())
                    }
                } catch (e: Exception) {
                    Log.d(TAG, "Error while trying to get posts from database")
                } finally {
                    if (cursor != null && !cursor.isClosed) {
                        cursor.close()
                    }
                }
                return list
            }
            

            در متد بالا ما کوئری Select را از جدولی که در متد onCreate ایجاد کردیم نوشتیم و با استفاده از cursor به تمامی رکوردها اشاره میکنیم و داده هارا دریافت می کنیم.در نهایت تمامی داده ها که درون list اضافه یا add شده را بر میگردانیم.

            عمل Update

            در متد زیر ما یک رکورد از جدول را براساس id آن Update میکینم.

            همچنین بخوانید: آموزش گام به گام عملیات CRUD با لاراول 5.8

            جاوا

             public int updateUserProfilePicture(Item item) {
                     SQLiteDatabase db = this.getWritableDatabase();
                ContentValues values = new ContentValues();
                values.put(KEY_ITEM_ID , item.id);
                values.put(KEY_ITEM_DESC , item.desc);
                values.put(KEY_ITEM_TIME , item.time);
                values.put(KEY_ITEM_ALARM, item.alarm);
            
                return db.update(TABLE_ITEMS, values, KEY_ITEM_ID + " = ?",
                        new String[] { String.valueOf(item.id) });
            }
            

            کاتلین

              public fun updateItem(item : Item): Int{
                     val db = this.writableDatabase   
             val values = ContentValues()
                values.put(KEY_ITEM_DESC, item.desc)
                values.put(KEY_ITEM_TIME, item.time)
                values.put(KEY_ITEM_ALARM, item.alaram)
            
                return db.update(
                    TABLE_ITEMS, values, KEY_ITEM_ID + " = ?", arrayOf(item.id.toString())
                )
            }
            

            عملیات بروزرسانی یا آپدیت کمی شبیه به عمل Create است چرا که مقادیر را با ContentValues به دیتابیس اعمال میکنیم.
            البته براساس آیدی آیتم که در where معرفی شده.

            عمل Delete

            در این عملیات ما میتوانیم یا داده کل جدول را پاک کنیم و یا یک رکورد براساس آیدی آن

            جاوا

                  public int deleteItem(Item item){
                     SQLiteDatabase db = getWritableDatabase();
                return db.delete(
                        TABLE_ITEMS,  KEY_ITEM_ID + " = ?", new String[]{String.valueOf(item.id)});
            }
            

            کاتلین

                public fun deleteItem(item: Item): Int{
                     val db = this.writableDatabase 
                return db.delete(
                    TABLE_ITEMS,  KEY_ITEM_ID + " = ?", arrayOf(item.id.toString())
                )
            }
            

            در متد فوق ما تنها یک آیتم را براساس id آن حذف کردیم.و در متد زیر تمامی داده هارا پاک میکنیم:

            جاوا

             public void deleteAllItems() {
                     SQLiteDatabase db = getWritableDatabase();
                     db.beginTransaction();
                     try {
                         db.delete(TABLE_ITEMS, null, null);
                         db.setTransactionSuccessful();
                     } catch (Exception e) {
                         Log.d(TAG, "Error while trying to delete all posts and users");
                     } finally {
                         db.endTransaction();
                     }
                 }
            

            کاتلین

               fun deleteAllItems() {
                     val db = writableDatabase
                     db.beginTransaction()
                     try {
                         db.delete(TABLE_ITEMS, null, null)
                         db.setTransactionSuccessful()
                     } catch (e: Exception) {
                         Log.d(TAG, "Error while trying to delete all posts and users")
                     } finally {
                         db.endTransaction()
                     }
                 }
            

            امیدوارم این آموزش برای شما مفید بوده باشه…

            اشتراک گذاری

            پست های مرتبط

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            30 بهمن 1400

            دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            30 بهمن 1400

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            توابع در زبان برنامه نویسی دارت (Dart)

            توابع در زبان برنامه نویسی دارت (Dart)

            27 بهمن 1400

            توابع در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب

            دیدگاهتان را بنویسید لغو پاسخ

            نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

            ساخت اپلیکیشن های موبایل

            • ساخت اپلیکیشن فروشگاهی
            • ساخت اپلیکشن ابزاری و خدماتی
            • ساخت اپلیکیشن آموزشی
            • و هزاران موضوع دیگر

             
            کلیک کنید

            آخرین دیدگاه ها

            • 9 اسفند 1401

              مهری اصغری نظر در پیاده سازی اولین پروژه با فلاتر Flutter

            • 26 آبان 1401

              سجاد نظر در پروژه مدیریت سیستم مدرسه با سی شارپ و sql server

            • 7 خرداد 1401

              داودی نظر در آموزش استفاده از ckeditor همراه با آپلود عکس در لاراول 6

            تجاری اپ در شبکه های اجتماعی

            لوگوی تایید پرداخت آنلاین

            2015-2022 © تمامي حقوق مادي و معنوي اين وب سايت نزد تجاری اپ محفوظ بوده و هر گونه کپي برداري از مطالب پيگرد قانوني به همراه دارد! | طراح سایت : ProgRun
            سفارش پروژه
                      هیچ نتیجه ای یافت نشدمشاهده همه نتایج