آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

آموزش دیتابیس SQLite در اندروید - 4

چهارشنبه, ۲۵ دی ۱۳۹۸، ۰۳:۴۴ ب.ظ

متد Select

 

این متد خیلی مهمه. کلا برای خوندن از دیتابیس از این متد استفاده میشه. یعنی هر کاری از قبیل سرچ و نمایش و اینا وظیفه این متد هست. مثل قبل، برای استفاده از این متد دو روش وجود داره:

 1. استفاده از متد "rawQuery"

 2. استفاده از متد "query"

 

 

این دو متد هر دو خروجی Cursor دارن. cursor یک نمونه ای از کل دیتابیس هست که اشاره گرش به سطری قبل از سطر اول اشاره میکنه. (بیشتر توضیح داده میشه) - فرق این دو متد اینه که "rawQuery" یک دستور SQL ای میگیره (یعنی کد SQL) ولی "query" از متدهای API دیتابیس هست و نیازی به دستورات SQL نداره.

 

حواسمون باشه که برای Select نمیشه از execSQL استفاده کرد چون این متد خروجی نداره. در حالی که ما نیاز به خروجی Cursor داریم.

 

توی عکس زیر متد Search رو میبینین. این متد در واقع میره توی دیتابیس میگرده و فردی که مشخصاتش با ورودی یکی هست رو بیرون میده. برای این کار هم باید یک نمونه از کل دیتابیس رو از طریق متد  "query" بگیریم و توش سرچ کنیم.

 

 

نکته مهم اینه که هر وقت cursor گرفتیم اول دستور 

if(cursor.moveToFirst())

رو مینویسیم. این میگه آقا اگر سطر اول وجود داشت فلان کارو انجام بده. اگرم وجود نداشت هیچی. do-while برای اینه که عملیات مورد نظر برای سطر اول هم انجام بشه.

 

دو تا نکته مهم:

 

1. به نحوه بیرون کشیدن اطلاعات از cursor دقت کنید. مثلا اگر قراره اطلاعاتی که از نوع int هست رو بیرون بکشیم، اینجوری مینویسیم:

cursor.getInt(شماره ستون)

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

cursor.getInt(cursor.getColumnIndex(اسم ستون))

اسم ستون رو هم که گفتیم توی کلاس Labels تعریف میکنیم. پس میشه اینجوری:

person.setId(cursor.getInt(cursor.getColumnIndex(Labels.COLOUMN_ID)));

 

2. یادمون نره حتما کلاس Model رو بسازیم. کلاس مدل یعنی همون که قراره به دیتابیس اد، جستجو، حذف یا ویرایش بشه. توی این مثال کلاس مدل از نوع person بود. حتما باید getter ها و setter ها تعریف بشن.

 

 

موافقین ۰ مخالفین ۰ ۹۸/۱۰/۲۵
میم دال

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی