MainActivity sinfida biz ma'lumotlar bazasi bilan o'zaro aloqani aniqlaymiz:
package com.example.sqliteapp; import androidx.appcompat.app.AppCompatActivity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view){ SQLiteDatabase db = getBaseContext().openOrCreateDatabase("app.db", MODE_PRIVATE, null); db.execSQL("CREATE TABLE IF NOT EXISTS users (name TEXT, age INTEGER)"); db.execSQL("INSERT INTO users VALUES ('Tom Smith', 23);"); db.execSQL("INSERT INTO users VALUES ('John Dow', 31);"); Cursor query = db.rawQuery("SELECT * FROM users;", null); TextView textView = (TextView) findViewById(R.id.textView); while(query.moveToNext()){ String name = query.getString(0); int age = query.getInt(1); textView.append("Name: " + name + " Age: " + age + "\n"); } query.close(); db.close(); } } Bu erdagi tugmani bosish avval app.db ma'lumotlar bazasida yangi users jadvalini yaratadi, so'ngra INSERT SQL buyrug'i yordamida unga ikkita ob'ekt qo'shiladi.
Keyinchalik, SELECT ifodasidan foydalanib, biz barcha qo'shilgan foydalanuvchilarni ma'lumotlar bazasidan Cursor kursori ko'rinishida olamiz.
Query.moveToNext() ni chaqirib, biz while tsiklida ketma-ket barcha ob'ektlar bo'ylab harakat qilamiz.
Kursordan ma'lumotlarni olish uchun query.getString(0) va query.getInt(1) usullari ishlatiladi. Biz ma'lumot oladigan ustunning raqami qavs ichida ko'rsatilgan. Masalan, yuqorida biz avval foydalanuvchi nomini mag'lubiyatga, so'ngra yoshni raqam sifatida qo'shdik. Bu shuni anglatadiki, nol ustun getString() usuli yordamida olingan satr qiymati bo'ladi, va keyingi - birinchi ustun getInt() usuli qo'llaniladigan raqamli qiymatdir.
Kursor va ma'lumotlar bazasi bilan ishlashni tugatgandan so'ng, biz tegishli barcha ob'ektlarni yopamiz:
query.close(); db.close(); Agar biz kursorni yopmasak, xotira oqishi muammosiga duch kelishimiz mumkin. Agar biz ilovaga murojaat qilsak, tugmani bosgandan so'ng, qo'shilgan ma'lumotlar matn maydonida ko'rsatiladi:
SQLiteOpenHelper_va_SimpleCursorAdapter_SQLitedan_malumotlarni_olish.'>2. SQLiteOpenHelper va SimpleCursorAdapter SQLitedan ma'lumotlarni olish.
Oldingi mavzu SQLite ma'lumotlar bazasiga qanday ulanish va so'rovlarni bajarish haqida edi. Keling, ma'lumotlar bazasi bilan ishlash uchun to'liq interfeys yarataylik.
Shunday qilib, yangi loyihani yarataylik. SQLite ma'lumotlar bazasi bilan ishlashni soddalashtirish uchun Android ko'pincha SQLiteOpenHelper sinfidan foydalanadi. Uni ishlatish uchun siz SQLiteOpenHelperdan meros bo'lib o'tadigan, uning kamida ikkita usulini bekor qiladigan sinf yaratishingiz kerak: