شاید شما هم مثل من درگیر کار با پایگاه داده در اپ های اندرویدی باشید . اولش خیلی سخته معمولا توی اموزش ها فایل های زیادی درست میکنن و آدم سردرگم میشه
حقیقت این هست کدها برای اتصال و مدیریت جدول های دیتابیس با زبان کاتلین در محیط اندروید استودیو خیلی پیچیده و زیاد به نظر میرسه ولی اینطور نیست.خب بیایید یکی یکی شروع کنیم ...
یه سری کلاس ها بعنوان کمک کننده حتما باید بسازید که من اونا رو اینجا مینویسم شاید به دردتون بخوره
این کلاس ها در ابتدا باید نوشته بشه تا اتصال و مدیریت دیتابیس با کاتلین بصورت استاندارد انجام بشه
کلاس ها :
هر کدام از کلاس های بالا باید تعریف بشن و اصولی انجام بگیرند تا روند اتصال به دیتابیس در اپ اندرویدی کامل انجام بگیره دیتابیس مورد نظر هم Sqlite هست که یه دیتابیس سبک و راحت برای اپ های اندرویدی هست.
و اما اگر بخوام یه توضیح کوچیک درباره ی کلاس های بالا بدم اینطوری میگم
کلاس DBHandler همون کمک کننده ی اصلی یا هلپر ما هست که تو بعضی اموزش ها اسمش را DBHelper هم میزارن و این کلاس از کلاس SQLiteOpenHelper ارث بری میکنه و تمام متود های لازم برای عملیات CRUD یعنی CREATE READ UPDATE و DELETE اینجا نوشته میشه.
فایل Models میتونه در بردارنده ی مدل کلاس های زیادی باشه مدل ها همون موجودیت های جداول هست یعنی خوبه به ازای هر موجودیت که همون جدول هست یه مدل درست کنید مثلا اگر در دیتابیس جدول books دارید که فیلد های book_name و book_id داره این رو بعنوان یک کلاس تعریف کنید به این شکل :
class Model(){
var bookID : Int = 0
var bookName : String = ""
}
کلاس Adapter وظیفه ی این رو داره که اطلاعات رو در view ها پر بکنه و برای هر یک از آیتم هایی که از جداول لود کردیم یک view جدا با ویژگی های جدا بسازه تا بتونیم روی هر view عملیات انجام بدیم مثلا دکمه اضافه کن با قابلیت کلیک شدن که بشه هر یک از ایتم ها را دیلیت کرد :)) اینم از یه کلاسی ارث بری میکنه بستگی به این داره که چه چیزی رو برای نمایش انتخاب کردید معمولا recyclerview انتخاب میکنند که در این صورت این کلاس از RecyclerView.Adapter ارث بری خواهد کرد.
اینا مفاهیم کلی هست که من خودم خیلی باهاشون درگیر بودم در ابتدا دنبال یه نوشته ای بود که بصورت کلی نشون بده قراره من چیکار کنم و بعد برم تو دل کدنویسی و یاد بگیرم . البته اموزش های خوب زیادی هست که من دیدم و اگر اول کار پیداشون میکردم این همه مشکلات نمیکشیدم نمونش دوره ی پروژه محور کاتلین استاد نیکزاد هست که بینظیر بود برای یادگیری این موارد : اینجا میتونین ببینین
برای نمایش داده ها شما بهتره از یه لیست منعطف مثل RecyclerView استفاده کنید چون در این صورت یه لیست عادی و ساده ندارید شما میتونید روی هر یک از آیتم هایی که لود شده عملیات انجام بدید و همچنین هر نوع view را اضافه کنید.
مثلا تصویر زیر دو نوع مختلف نمایش در recyclerview هست :
روی هر آیتم دکمه ی ویرایش یا حذف میتونید قرار بدید تصویر میتونید به هر شیوه ای لود کنید و ....
برای عملیات CRUD دیتابیس باید متودهایی را درون DbHandler یا همون DbHelper بنویسید.
دیگه بقیه کار یعنی نامگذاری متود و کدنویسی درون اونها کار ساده ای هست که بر اساس سلیقه ی برنامه نویس انجام میگیره مثلا داخل DbHanlder میتونید یه متودی برای اضافه کردن دانش آموزان به دیتابیس به این شکل بنویسید:
fun addStudent(cTx: Context, student: Student) { val values = ContentValues() values.put(COLUMN_STUDENT_NAME,student.studentName) values.put(COLUMN_STUDENT_PHONE,student.studentPhone) values.put(COLUMN_STUDENT_MARK,student.studentMark) val db = this.writableDatabase try { db.insert(STUDENT_TABLE_NAME,null,values) Toast.makeText(cTx,"student added successfully",Toast.LENGTH_SHORT).show() }catch (e:Exception){ Toast.makeText(cTx,"Error : ${e.message}",Toast.LENGTH_SHORT).show() } }
این ویدیو رایگان هم فارسی هست پیدا کردم برای یادگیری کار با دیتایس در اندروید عالیه که پیشنهاد میکنم ببینید :