دیتابیس Room یک ORM هست که گوگل سال 2017 برای توسعه دهندگان اندرویدی معرفی کرد.
ORM ها امکانات زیادی به ما برای کار کردن با دیتابیس های معمولی می دهند که در یک پست جداگانه حتما با هم بررسی خواهیم کرد.
دیتابیس Room در برنامه نویسی اندروید
Room
یک کتابخانه پایگاه داده در برنامهنویسی اندروید است که توسط Google توسعه داده شده و ابزاری را برای ایجاد، مدیریت و تعامل با پایگاههای داده SQLite در اپلیکیشنهای اندروید فراهم میکند.
این کتابخانه به توسعهدهندگان امکاناتی جهت سادهتر و بهینهتر کردن کار با پایگاه دادهها ارائه میدهد.
مزایای استفاده از Room
در اندروید عبارتند از:
- سهولت در استفاده:
Room
اجازه میدهد تا به راحتی تعریف و کار با جداول پایگاه داده، پرسمانها و عملیات CRUD را انجام دهید. - لایهبندی: با استفاده از
Room
میتوانید لایهبندی مناسب برنامهتان را ایجاد کنید؛ به عبارت دیگر، مدلهای داده، دسترسی به داده (DAO) و پایگاه داده از یکدیگر جدا میشوند. - کدنویسی کمتر: با استفاده از
Room
نیاز به نوشتن پرسمانهای SQL سنتی ندارید، بلکه میتوانید از پرسمانهای اشیائی (Query Objects) برای تعریف پرسمانهای خود استفاده کنید. - پشتیبانی از تغییرات داده:
Room
از مکانیزمهایی برای تشخیص و ردگیری تغییرات داده استفاده میکند. این به شما اجازه میدهد تا برای اطمینان از دقت دادهها از تغییرات برنامهها مراقبت کنید. - آنیمیشنها و انتقالها:
Room
به صورت بهینهتر با کتابخانههای دیگر اندروید سازگار است و میتوانید از آنیمیشنها و انتقالها برای بهبود تجربه کاربری استفاده کنید.
برای استفاده از Room
، شما باید مدلهای دادهتان را تعریف کنید، DAO (Data Access Object) برای تعریف پرسمانها و عملیاتهای مورد نیاز و نهایتاً پایگاه داده اصلی که از کتابخانههای RoomDatabase
ارثبری میکند. این سه مؤلفه به هم ترکیب شده و برای مدیریت پایگاه دادههای SQLite به راحتی و با استفاده از روشهای شیگرا امکانپذیر میشود.
دیتابیس Room از سه بخش اصلی تشکیل شده است که شامل:
Entity: موجودیت های ما هستند, هر Entity به یک آبجکت از اطلاعات ما اشاره میکند. در کلاس Entity با استفاده از annotation مشخص می کنیم که اطلاعات در کدام جدول ذخیره شوند.
DAO: در DAO ما متد هایی که برای دسترسی به دیتابیس نیاز داریم و مینویسیم, برای مثال متدهایی برای گرفتن اطلاعات یا آپدیت کردن جداول.
Database: دیتابیس یک کلاس هست که تمام Entity های خودمون و داخلش تعریف می کنیم.
برای آموزش کامل کار با دیتابیس Room من دو قسمت ویدیو براتون ضبط کردم که میتونید استفاده کنید. البته ویدیو ها داخل یوتیوب آپلود کردم که باید از فیلتر شکن استفاده کنید.