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

  • 0

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

در ساخت برنامه های همیشه ممکن است نیاز داشته باشیم یک سری از اطلاعات را ذخیره و بازیابی کنیم در برنامه های اندروید راه حل منطقی استفاده از دیتابیس sqlite است .

در این آموزش نحوه استفاده آسان و سریع از این دیتابیس آموزش داده می شود برای شروع کار ابتدا کتابخانه KDB را که کار آن ساده کردن کار با دیتابیس هست را به پروژه خود اضافه میکنیم 

allprojects {
  repositories { 
   ...
   maven { url 'https://jitpack.io' }
  }
}


dependencies {
          ...
         implementation 'com.google.code.gson:gson:2.2.4'
         implementation 'com.github.parsgit:KDB:1.0.1'
	}

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

KDB.init(MainActivity.this,"db_name");

به جای عبارت db_name می توانید نام دلخواه خود را بنویسید

در مرحله دوم باید جدول های( table )  مورد نظر خود را ایجاد کنیم به مثال زیر توجه کنید

KDB.CreateTableQuery createTableQuery=new KDB.CreateTableQuery();
createTableQuery.Table("users")
                .Column("id").INTEGER().KEY_AUTO().Add()
                .Column("name").TEXT().Add()
                .Column("username").TEXT().NULL_ABLE(false).Add()
                .Column("age").INTEGER().DEFAULT(0).Add()
                .Build();

فرض کنید ما میخواهیم اطلاعات یک سری کاربر را که شامل نام و نام کاربری و سن می باشد را ذخیره کنیم پس با کد بالا جدولی به اسم users ایجاد میکنیم جدول users باید داری ستون هایی با نام های id , name , username , age باشد تا بتوانیم اطلاعات را در انها ذخیره کنیم 

توضیح : در این قسمت از کد

 Column("age").INTEGER().DEFAULT(0).Add

ستون age ( سن ) را ایجاد میکنیم و نوع آن را عدد صحبح ( INTEGER )  و مقدار پیش فرض را صفر در نظر گرفته ایم

تا اینجا ما یک دیتابیس به همراه جداول مربوطه ایجاد کردیم حالا نوبت آن رسیده که اطلاعاتی را در دیتابیس ذخیره کنیم برای ذخیره اطلاعات در sql از دستور INSERT استفاده میکنیم

KDB.query("insert into users (name,username,age) values ('beny','nitrocode.ir',24)") .exec();

// یا به صورت زیر عمل میکنیم

JsonObject values=new JsonObject();
        values.addProperty("name","beny");
        values.addProperty("username","nitrocode.ir");
        values.addProperty("age",24);

        KDB.query("insert into users (name,username,age) values (:name,:username,:age)",values)
                .exec();

با استفاده از کتابخانه KDB می توان مقدار پارامتر ها را به صورت جیسون ابجکت یا ارایه لیست ارسال کرد در قسمت دوم کد بالا ما یک متغیر جیسون آبجک با نام values ایجاد کردیم و مقادیر name , username , age را مقدار دهی کردیم .

روش سوم مقدار دهی پارامتر ها به صورت ارایه لیست هست که من خودم بیشتر از این روش استفاده میکنم در کد زیر می توانید نحوه کار را مشادهد کنید

ArrayList<String> params=new ArrayList<>();
        params.add("myname-test");
        params.add("abcd");
        params.add("24");

        KDB.query("insert into users (name,username,age) values (?,?,?)",params).exec();

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

SELECT ( بازیابی اطلاعات ثبت شده )

برای فراخانی اطلاعات از دیتابیس از دستور SELECT استفاده میکنیم چند روش مختلف SELECT را مشاهده کنید

JsonArray result = new JsonArray();

// دریافت تمام اطلاعات ثبت شده در جدول
result = KDB.query(" select * from users ").getJsonArray();

//دریافت اطلاعات یک کاربر بر اساس نام کاربری
ArrayList<String> params=new ArrayList<>();
params.add("nitrocode.ir");

result = KDB.query(" select * from users where username = ? ",params);

// دریافت اطلاعات کاربرانی که سنشان بیشتر از 20 سال است
ArrayList<String> params=new ArrayList<>();
params.add("20");

result = KDB.query(" select * from users where age > ? ",params);


 

UPDATE ( ویرایش اطلاعات )

در این مثال فرض میکنیم اطلاعات کاربری به نام علی در دیتابیس ما وجود دارد

// اطلاعات فرضی کاربر در دیتابیس ما
name      : ali
username  : ali156
age       : 18

که ما می خواهیم سن او را که در دیتابیس 18 ثبت شده به 30 تغییر دهیم

JsonObject values=new JsonObject(); values.addProperty("username","ali156"); values.addProperty("age",30);

KDB.query(" update users set age = :age where  username = :username",values).exec();

با اجرای کد بالا اطلاعات کاربر با نام کاربری ali156 جستجو می شود و سن او به 30 تغییر پیدا می کند

DELETE ( حذف اطلاعات )

ArrayList<String> params=new ArrayList<>();
params.add("ali157");

KDB.query(" delete from users username = ? ").exec();

این کد اطلاعات ali را حذف میکند


Leave a Reply