برای ساخت دیتابیس (Database) در برنامه اندروید، پایگاه داده SQLite را به کار می بریم. این پایگاه داده یک دیتابیس SQLite، ساده اوپن سورس هست است که تنها در طرف کاربر (client side) مورد استفاده قرار می گیرد و نیازی به سرور (server) ندارد.

در اندروید دیتابیس ها(پایگاه داده) داخل data/data/<package-name>/databases ذخیره میشه و هر برنامه فقط خودش میتونه به دیتابیس خودش  دسترسی داشته باشه و برنامه دیگه ای اجازه دسترسی بهش رو نداره .

 

نکته
برای دسترسی به دیتابیس،دستگاه اندرویدی شما باید روت شده باشد.

فرض کنید که بخواهیم یک پایگاه داده (SQLite Database) با نام ORATION.db بسازیم و در آن، یک جدول (table) با نام MY_TABLE قرار بدهیم، برای این منظور، کدهای زیر را می نویسیم :

 با عبارت نوشته شده درون متد execSQL ، تعیین کرده ایم که یک جدول (table) با سه ستون (column) ساخته شود. نام ستون اول، برابر ID و از نوع INTEGER () ، نام ستون دوم برابر NAME و از نوع TEXT و نام ستون سوم، برابر CITY و از نوع TEXT می باشد.

نکته
متد execSQL یک عبارت دستوری را دریافت می کند و سپس بر اساس آن، تغییرات را به دیتابیس و جدول ها، اعمال می کند.

همان طور که مشاهده می کنید، از ترکیب try و catch استفاده کرده ایم و در صورتی که در اجرای دستورات مربوط به دیتابیس داده و جدول، خطایی به وجود بیاید، یک پیام به مدت چند ثاتیه به شما نمایش داده می شود (توسط Toast).

به این خط از کدها توجه کنید :

از متد openOrCreateDatabase برای ساخت پایگاده داده (SQLite Database) استفاده کرده ایم. این روش چک می کند که اگر پایگاه داده، قبلا ساخته شده باشد، آن را باز می کند و یا اگر پایگاه داده ای با آن نام، قبلا ساخته نشده باشد، آن را ساخته و سپس باز می کند. نتیجه به صورت یک SQLiteDatabase با نام mydb می باشد.

سپس با استفاده از متد execSQL ، عبارت لازم برای ساخت یک جدول (table) برای پایگاه داده (SQLite Database) را اجرا می کنیم :

در آخر، باید پایگاه داده را که باز کرده ایم، با استفاده از روش close ببندیم :

ما می توانیم با استفاده از یک شی از کلاس Cursor، هرچیزی را بازیابی کنیم. متد rawQuery  از این کلاس نتیجه اشاره Cursor به مکانی خاص از جدول را به ما برمیگرداند.

عملکردهای دیگری به غیر از Select در کلاس Cursor وجود دارند که به ما اجازه می دهند تا به طور موثر داده را بازیابی کنیم. این ها را در جدول زیر میبینید.

شماره متد ها و توضیحات
۱ ()getColumnCount

این متد تعداد کل ستون های یک جدول را گزارش می دهد.

۲ getColumnIndex(String columnName)

این متد ردیف یک ستون را با مشخص کردن نام ستون گزارش می دهد.

۳ getColumnName(int columnIndex) 
این متد با مشخص کردن ردیف ستون، نام ستون را گزارش می دهد.
۴ ()getColumnNames
این متد ردیفی از نام همه ی ستون های جدول ارائه می دهد.
۵ ()getCount

این متد تعداد ردیف های جدول را گزارش می دهد.

۶ ()getPosition

این متد موقعیت مکان نما را در جدول گزارش می دهد.

۷ ()isClosed

این روش اگر مکان نما بسته شده باشد true، و در غیر این صورت false را گزارش می دهد.

قرار دادن اطلاعات جدید در یک جدول (table) موجود در پایگاه داده (SQLite Database)، در برنامه نویسی اندروید

اکنون با کدهای زیر، تعدادی اطلاعات جدید را به صورت ردیف (row) به جدول (table) اضافه می کنیم (برای افزودن اطلاعات جدید، آنها را باید به صورت ردیف های جدید به جدول اضافه کنیم) :

این عبارت دستوری، تعیین کرده است که در جدول با نام  MY_TABLE ، یک ردیف جدید افزوده شود که در ستون NAME از آن، مقدار HAMID و در ستون CITY از آن، مقدار MASHHAD قرار داده شود.

حذف کردن یک جدول (table) موجود در دیتابیس (SQLite Database)، در برنامه نویسی اندروید

فرض کنید که قبلا یک جدول با نام MY_TABLE در پایگاه داده ای (SQLite Database) با نام ORATION.db ساخته ایم و اکنون قصد داریم که آن جدول را حذف کنیم، برای این منظور، باید کدهای زیر را بنویسیم :

حذف کردن ردیف هایی از یک جدول (table) موجود در یک دیتابیس (SQLite Database)، بر اساس مقدار یک ستون (column) خاص

فرض کنید که قبلا یک پایگاه داده (SQLite Database) با نام ORATION.db و یک جدول (table) با نام MY_TABLE برای آن پایگاه داده، ساخته ایم و همچنین چند ردیف اطلاعات را در آن ذخیره کرده ایم :

اکنون می خواهیم ردیف هایی که در آنها، ستون CITY برابر MASHHAD است، حذف شوند، برای این منظور، کدهای زیر را می نویسیم :

به روز رسانی (update) ردیف هایی از یک جدول (table) موجود در یک پایگاه داده (SQLite Database)، بر اساس مقدار یک ستون (column) خاص

فرض کنید قبلا یک پایگاه داده (SQLite Database) با نام ORATION.db و یک جدول (table) با نام MY_TABLE برای آن پایگاه داده، ساخته ایم و همچنین چند ردیف اطلاعات را در آن ذخیره کرده ایم :

اکنون می خواهیم ردیف هایی که در آنها، ستون CITY برابر MASHHAD است، به روز رسانی (update) شده و مقدار دیگری برای ستون NAME آنها در نظر گرفته شود، برای این منظور، کدهای زیر را می نویسیم :

عبارت دستوری فوق، تعیین کرده است که درون جدول با نام MY_TABLE ، هر ردیفی که در آن، مقدار ستون با نام CITY برابر با MASHHAD است، مقدار ستون با نام NAME ، در آن ردیف، به مقدار MOHSEN تغییر داده شود (به روز رسانی مقدار آن ستون از ردیف).

خواندن اطلاعات از دیتابیس (SQLite Database)، در برنامه نویسی اندروید

فرض کنید  قبلا یک پایگاه داده (SQLite Database) با نام ORATION.db و یک جدول (table) با نام MY_TABLE برای آن پایگاه داده، ساخته ایم و همچنین چند ردیف اطلاعات را در آن ذخیره کرده ایم :

پس از اجرای کدهای بالا مقادیری که در پایگاه داده ذخیره شده باشند به صورت toast  نمایش داده میشوند.

حذف کردن یک پایگاه داده (SQLite Database)، در برنامه نویسی اندروید

فرض کنید که یک پایگاه داده (SQLite Database) با نام ORATION.db قبلا ساخته ایم و اکنون قصد داریم که آن را حذف کنیم، برای این منظور، کدهای زیر را می نویسیم (فرض کرده ایم که کدها درون یک Activity نوشته شده اند و کلمه this ، به context آن Activity اشاره دارد) :

کلاس کمکی دیتابیس:

برای مدیریت تمام عملیات مربوط به پایگاه داده، یک کلاس کمکی داده شده است نام SQLiteOpenHelper  این کلاس به طور خودکار مدیریت، ایجاد و به روز رسانی پایگاه داده را مدیریت می کند، شکل کلی این کلاس در زیر آمده است.

در مطلبی دیگر با استفاده از این کلاس به پروژه ساخت و استفاده از دیتابیس در محیط اندروید استودیو پرداخته ایم.

نکته
کلمات «پایگاه داده» و «دیتابیس» استفاده شده در متون بالا هر دو به یک منظور استفاده شده و هم معنی با هم هستند و در هر دو منظور Database است

این خبر را به اشتراک بگذارید :