رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

SQLite یک پایگاه داده منبع باز است که برای ذخیره فایل های متنی در برنامه نویسی موبایل مورد استفاده قرار می گیرد.این پایگاه داده برای ایجاد پایگاه داده های برنامه های موبایل اندروید مورد استفاده قرار می گیرد.SQLite از تمام ویژگی های پایگاه داده های دیگر پشتیبانی می کندو برای ایجاد ارتباط میان هر پایگاه داده ای دیگری مثل JDBC,ODBC نیاز به هیچ جز اضافه ای ندارد.

پایگاه داده - بسته اصلی

این بسته اصلی android.database.sqllite می باشد که شامل کلاس های مختلف برای مدیرتی پایگاه داده است.

ساخت پایگاه داده

برای ساخت پایگاه داده های برنامه های اندروید فقط نیاز به فراخوانی نام پایگاه داده با استفاده از متد OpenOrCreateDatabase و یک پارامتر است.همانطور که نمونه آن را در کد زیر می بینید

 SQLiteDatabase mydatabase = openOrCreateDatabase("your database name",MODE_PRIVATE,null);

 

توابع و متد های دیگری در پایگاه داده  SQLLite وجود دارد که دستورهای دیگری را اجرا می کنند:

openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags, DatabaseErrorHandler errorHandler)

این متد پایگاه داده های موجود دیگر را با مقدار داده ای flag باز می کند.حالت flag  شامل دو حالت OPEN_READWRITE و OPEN_READONLY می باشد.

 openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags)

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

 openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)

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

 openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory factory)

این دستور نیز مشابه دستور بالا است با این تفاوت که بجای رشته، فایل object را بعنوان پارامتر ورودی دریافت می کند. ()file.getPath

درج اطلاعات در دیتابیس

با استفاده از دستور execSQL که در پایگاه داده SQLite وجود دارد می توان دستور insert  را نوشت.

mydatabase.execSQL("CREATE TABLE IF NOT EXISTS TutorialsPoint(Username VARCHAR,Password VARCHAR);");

mydatabase.execSQL("INSERT INTO TutorialsPoint VALUES('admin','admin');");

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

 execSQL(String sql, Object[] bindArgs)

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

دریافت اطلاعات جداول

برای دریافت اطلاعات یک جدول از یک شی کلاس Cursor استفاده می کنیم.برای اینکار از متد rawQuery استفاده می کنیم

Cursor resultSet = mydatbase.rawQuery("Select * from TutorialsPoint",null);

resultSet.moveToFirst(); String username = resultSet.getString(1); String password = resultSet.getString(2);

 

کد بالا با استفاده از دستور MoveToFirst تابع را به ابتدای سطر جدول می برد و از انجا شروع به خواندن اطلاعات و ذخیره آنها در دو متغیر username و password ذخیره می کند.

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

getColumnCount(): مجموع تعداد ستون های جدول را بازمیگرداند.

getColumnIndex(String columnName): یک عدد شاخص از یک ستون با نام آن ستون را باز می گرداند.

getColumnName(int columnIndex): یک ستون با index آن را باز می گرداند.

getColumnNames(): آرایه ای از نام های تمام ستون های جدول را باز میگرداند.

getCount(): تعداد کل ردیف های را که اشاره گر در آنها قرار دارد باز می گرداند.

getPosition(): موقعیت اشاره گر را در جدول باز می گرداند.

isClosed(): اگر اشاره گر به انتها رسیده باشد مقدار true و اگر غیر این باشد مقدار false را باز می گرداند.

مدیریت عملیات پایگاه داده

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

public class DBHelper extends SQLiteOpenHelper {

   public DBHelper(){

      super(context,DATABASE_NAME,null,1);

   }

   public void onCreate(SQLiteDatabase db) {}

   public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {}

}

در مقاله بعدی یک نمونه مثال که شامل ایجاد جدول،درج و اصلاح اطلاعات و خواندن آنها از درون جدول است، را باهم مرور میکنیم.با سروش پرداز همراه باشید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 4 ماه بعد...

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • مطالب مشابه

    • توسط 3245
      سلام
      من درحال اموزش اندروید هستم،
      برای این کار، ویدیوهای ساخت کتاب رو خریدم، اما چون اطلاعاتم خیلی کمه،درک مطالب توی این ویدئو سخته برام
      میخواستم اگرممکنه دوستان کلیپی پیشنهاد بدن که سبک تر باشه و بیشتر به مباحث پایه بپردازه، البته خیلی هم نخواد از صفر شروع کنه که خسته کننده میشه...
      طوری باشه پروژه محور باشه اما پروژه سبکی باشه.
       
      ممنون.
       
       
    • توسط aliazmoodeh
      سلام من یه آپی دارم یه قسمت وجود داره که اطلاعات رو از سرور میگیره و تو ریسایکلرویو نمایش میده من میخوام این اطلاعات رو تو حالت افلاین هم داشته باشم یعنی چی یعنی بتونم اطلاعاتی که از سرور گرفتم قبلا رو وقتی کاربر اینترنت بهش نمایش بدم دقیقن مثله تلگرام میگم ولی نمیدونم باید چیکار کنم اگر اموزشی در این رابط دارید بهم بگید یا سورسی دارید بهم بگید پولی یا رایگان باشه برام فرقی نمیکنه فقط میخوام مشکلمو حل کنه
    • توسط Zeynab Tri
      سلام. دوستان بنده یک عدد تازه کار در برنامه نویسی اندروید هستم و نمیدونم این ارور رو چطور حل کنم. ممنون میشم اگر کسی میتونه من رو راهنمایی کنه.عکسش رو گذاشتم.

    • توسط moein123
      سلام دوستان خوبین؟
      من برای آپ خودم ثبتنام و لاگین دارم میسازم
      ثبتنام کاربر به خوبی کار میکنه و مشکلی نداره
      ولی برای لاگین کردن نمیدونم چرا کار نمیکنه
      پیغام خطا هم نمیده
      ببینین این کد سمت سروری که نوشتم
      <?php if($_SERVER['REQUEST_METHOD']=='POST'){ $mail2=$_POST['mail']; $password=$_POST['pass']; require_once 'connect.php'; $sql = "SELECT * FROM register WHERE mail='$mail2' "; $response=mysqli_query($conn,$sql); $result=array(); $result['login']=array(); if(mysqli_num_rows($response)===1){ $row=mysqli_fetch_assoc($response); if(password_verify($password,$row['pass'])){ $index['name']=$row['name']; $index['mail']=$row['mail']; array_push($result['login'],$index); $result['okk']='1'; $result['message']='okk'; echo json_encode($result); mysqli_close($conn); }else{ $result['okk']='0'; $result['message']='error'; echo json_encode($result); mysqli_close($conn); } } } ?> و اینم کد های جاوای اندروید که نوشتم
      package com.android.register1; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.print.PageRange; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.Toast; import com.android.volley.AuthFailureError; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.Volley; import com.google.android.material.snackbar.Snackbar; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.HashMap; import java.util.Map; public class loginn extends AppCompatActivity { EditText edt_username,edt_password_login; Button btn_login; ProgressBar my_progcess; static String url_login="http://192.168.1.103/register2/login.php"; LinearLayout my_manager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_loginn); find_all(); } private void find_all() { edt_username=findViewById(R.id.edt_username); edt_password_login=findViewById(R.id.edt_pass_login); my_progcess=findViewById(R.id.my_progcess_login); btn_login=findViewById(R.id.btn_login); my_manager=findViewById(R.id.my_manager); btn_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String musername=edt_username.getText().toString().trim(); String mpassword=edt_password_login.getText().toString().trim(); if(!musername.isEmpty() || !mpassword.isEmpty()){ my_login(musername,mpassword); }else { edt_username.setError("username"); edt_password_login.setError("password"); } } }); } public void my_login(final String mail,final String pass){ my_progcess.setVisibility(View.VISIBLE); btn_login.setVisibility(View.GONE); StringRequest request=new StringRequest(Request.Method.POST, url_login, new Response.Listener<String>() { @Override public void onResponse(String response) { try { JSONObject jsonObject=new JSONObject(response); String message=jsonObject.getString("okk"); JSONArray jsonArray=jsonObject.getJSONArray("login"); if(message.equals("1")){ for (int i = 0; i <jsonArray.length() ; i++) { JSONObject jsonObject1=jsonArray.getJSONObject(i); String name=jsonObject1.getString("name").trim(); String mail=jsonObject1.getString("mail").trim(); Snackbar snackbar=Snackbar.make(my_manager, name+mail+"لاگین شدید",Snackbar.LENGTH_LONG); snackbar.getView().setTranslationY(-100); snackbar.show(); } } } catch (JSONException e) { e.printStackTrace(); Toast.makeText(loginn.this, "error1"+e.toString(), Toast.LENGTH_SHORT).show(); my_progcess.setVisibility(View.GONE); btn_login.setVisibility(View.VISIBLE); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(loginn.this, "error2"+error.toString(), Toast.LENGTH_SHORT).show(); my_progcess.setVisibility(View.GONE); btn_login.setVisibility(View.VISIBLE); } }){ @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String,String>params=new HashMap<>(); params.put("mail",mail); params.put("pass",pass); return params; } }; RequestQueue requestQueue= Volley.newRequestQueue(this); requestQueue.add(request); } } ممنون میشم کمکم کنید 
    • توسط hossein1212
      سلام 
      من در اجرا شبیه ساز به مشکل زیر خورده ام راه حلی داره
      اینترنتم اوکیه ولی دانلود نمیکنه


  • فایل

×
×
  • اضافه کردن...