Ara 20

Android uygulamalarımızda veritabanı olarak genelde SQLite dediğimiz açık kaynak kodlu veritabanı kullanılır. Bu veritabanı, android ile beraber kullanıldığında hızlı çalışır ve performansı yüksektir.

Android de veri tabanı uygulaması yapmak için öncelikle yeni bir proje açalım. Bu yeni projenin başlangıç sayfasına veri tabanı işlemlerini yapacağımız tasarımı oluşturalım.

17-1

Burada basit bir tasarım ekranı oluşturduk. Kullanıcıdan adı ve soyadı bilgisini alıp veri tabanına kaydedeceğiz, listeleyeceğiz ve arama yaptıracağız.

Sizin de projenizde gerekli tasarımı yaptığınızı ve sayfadaki nesneleri, sayfanın .java uzantılı sınıfındaki değişkenlerle bağladığınızı, butonların Click özellikleri gibi metotları oluşturduğunuzu varsayıyorum.

Şimdi her şeyden önce projemizin src klasörü altında sağ tıklayarak New-Class diyoruz ve yeni bir sınıf oluşturuyoruz.

Bu sınıfa ben “veritabani” adını verdim.

Oluşturduğumuz sınıfta karşımıza gelen boş sayfada,

public class veritabani extends SQLiteOpenHelper

diyerek veritabani sınıfını SQLiteOpenHelper sınıfından extend ediyoruz yani türetiyoruz. Çünkü sonuçta veri tabanı işlemleri yapacağız. Ve bu işlemleri yaparken  SQLiteOpenHelper sınıfının metotlarını kullanacağız.

Daha sonra 2 adet değişken tanımlıyoruz. Bunlardan birisi veri tabanı adını tutacak olan “VERITABANI”  değişkeni, diğeri ise sürüm bilgisini tutacak olan  “SURUM” değişkeni. Bunları static ve final olarak tanımladık.

private static final String VERITABANI = "ogrenciler.db";
private static final int SURUM = 1;

Daha sonra bu ”veritabani” adlı sınıfımızla aynı isimde olan constructor’unu oluşturduk.

public veritabani (Context con) 
	{
	   super(con,VERITABANI,null,SURUM);	
	}

Constructor’u oluşturduktan sonra “Veritabani” isminin altı çizilecektir ve projeye iki adet metod eklememiz istenecektir. Eğer altı çizilen “Veritabani” isminin üzerine gelip, Add Unimplement Method dersek bu metodları veri tabanı sınıfı içerisine dâhil edebiliriz. Metotları da dahil ettikten sonra sınıfımızın içerisi şu görünümde olacaktır.

package com.huseyin.sqlornek;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class veritabani extends SQLiteOpenHelper {
	private static final String VERITABANI = "ogrenciler.db";
	private static final int SURUM = 1;
	public veritabani (Context con) 
	{
		super(con,VERITABANI,null,SURUM);	
	}
	@Override
	public void onCreate(SQLiteDatabase db) {
	}
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {		
	}
}

onCreate() ve onUpgrade() metodları SQLiteOpenHelper içerisinde yer alan hazır veri tabanı metotlarıdır. Veri tabanı sınıfını, SQLiteOpenHelper metodundan türettiğimiz için bu metotlara erişip kullanabiliyoruz.
onCreate() metodunda genelde veritabanı oluşturulur. Burada yapılacak olan işlemler bir defalığına yapılır.
onUpgrade() metodunda ise sürüm güncelleştirmelerinde yapılacak olanlar işlemler yazılır.
Şimdi gidip bu iki metodun içerisini dolduralım.

@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("CREATE TABLE ogrenciisim (id INTEGER PRIMARY KEY AUTOINCREMENT,isim TEXT,soyad TEXT);");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		db.execSQL("DROP TABLE If EXIST ogrenciisim");
		onCreate(db);
	}

Burada görüldüğü gibi onCreate() metodu içerisine,  parametre olarak aldığı db nesnesinin execSQL() metodunu yazdık. execSQL metodu, parametre olarak aldığı sorguyu çalıştırır. Biz bu sorgumuzda CREATE TABLE komutu ile “ogrenciisim” adında bir tablo oluşturduk. Bu veri tabanı içerisine, INTEGER türünde, birincil anahtar ve otomatik artan olan “id” sütununu, TEXT türünde “isim” ve “soyad” sütununu ekledik.

Android’de genelde TEXT,INTEGER ve REAL veri tipleri kullanılır.

onUpgrade() metodunda ise yine db.execSQL() metodunu kullandık. İçerisine ise, var olan veri tabanını silecek olan DROP TABLE If EXIST ogrenciisim komutunu verdik. Ardından ise tekrar onCreate() metodunu çağırarak veri tabanını tekrar yarattık. Yani kısaca, uygulama sürümünde bir güncelleme olduğunda veri tabanını sil ve yeniden yarat dedik.

Veri tabanı sınıfı içerisinde işlemlerimizi bitirdikten sonra projemize geri dönebiliriz.

Projenin başında MainActivity.java içerisinde, mainactivity.xml sayfasındaki nesneler ile olan gerekli değişken bağlamalarını ve buton click’lerini oluşturmuştuk.

Şimdi burada bir de veri tabanı sınıfına ulaşacağımız veri tabanı değişkenini oluşturalım.

private veritabani ogrenciler;

dedikten sonra MainActivity.java’ nın onCreate() metodu içerisine ;

ogrenciler = new veritabani(this);

diyelim.
Şimdi kaydet butonun click metodu içerisine gelelim.

   kaydet.setOnClickListener(new View.OnClickListener() {

	            public void onClick(View v)
	            {
	              try{
	                     KayitEkle(adi.getText().toString(),soyadi.getText().toString());
	                  }
	              finally{
	                      ogrenciler.close();
	                     }
	            }

	        });

Kodunu yazalım.

Burada görüldüğü üzere kayit butonuna tıklandığında KayitEkle() fonksiyonuna editText’lerden gelen ad ve soyad bilgisini gönderiyoruz. Tabi bu kodu kayıt ekleme sırasında herhangi bir hata olursa, uygulama çökmesin diye try içerisinde yazdık.

Şimdi KayitEkle() fonksiyonuna bakalım.

private void KayitEkle(String isim, String soyad){      
	     SQLiteDatabase db = ogrenciler.getWritableDatabase();  
	     ContentValues veriler = new ContentValues();
	     veriler.put("isim", isim);
	     veriler.put("soyad",soyad);     
	     db.insertOrThrow("ogrenciisim", null, veriler);
	     }

KayitEkle() fonksiyonunda, veri tabanına yazma işlemi yapacağımız için (veri tabanına erişmek için ogrenciler değişkenini oluşturmuştuk.)

ogrenciler.getWritableDatabase();

metodunu kullandık ve bunu db isimli veri tabanı nesnesine attık.

Ardından ContentValues sınıfından bir nesne oluşturduk. Bu nesneye put metodu aracılığıyla, KayitEkle() metoduna gelen iki parametreyi isim ve soyad parametrelerini ekledik.

veriler.put("isim", isim);
veriler.put("soyad",soyad);

Burada put() metodun içerisine iki parametre almış. Buradaki ilk parametre, ikinci parametrenin hangi isimle veriler nesnesinin içerisinde tutulacağını belirtiyor.

Ardından oluşturduğumuz db isimli veri tabanı nesnesine,

db.insertOrThrow("ogrenciisim", null, veriler);

diyerek, tablo adı “ogrenciisim” olan tabloya veriler nesnesini gönderiyoruz.(Kullanımı bu şekildedir.)

Buradaki insertOrThrow() metodu veritabanına kayıt eklemek için kullanılır. Adının insertOrThrow() olmasının nedeni; kaydı insert et (ekle), insert edemezsen o zaman at gitsin (hiçbir şey yapma) demek. Yani biz bu komut ile insert ederken, olurda kayıt işleminde bir hata olursa kaydetmez ve içindeki bilgileri atar. Id bilgisini veri tabanına göndermemize gerek yok çünkü zaten o otomatik artan.

Kayıt İşlemini tamamladık. Şimdi veritabanına kaydettiğimiz verileri listeleme işlemini gerçekleştirelim.

Öncelikle KayitGetir() metodunu yazalım.

private Cursor KayitGetir(){
	     SQLiteDatabase db = ogrenciler.getReadableDatabase();
	     Cursor cursor = db.query("ogrenciisim", SELECT, null, null, null, null, null);
	     return cursor;	     
	     }

Bu metod içerisinde de db nesnesi oluşturduk fakat bu sefer veri tabanından kayıt okuyacağımız için getReadableDatabase() metodunu kullandık. Ardından bir cursor tanımladık ve içerisine bir query yazdık. Yazdığımız query içerisine aldığı “ogrenciisim” tablosu içinde SELECT işlemi yapacak, “SELECT” değerinden sonraki 5 tane null kelimesi ise; sırasıyla ; where koşulu, where koşulunun değerleri, groupby, having, orderby’dır. Biz bunların belirlenmesini istemediğimiz için bunları null belirledik.

En sonunda ise oluşturduğumuz cursor’u return ettik.

Şimdi KayitGoster() metodunu oluşturalım.

private void KayitGoster(Cursor cursor){
	         StringBuilder builder = new StringBuilder();

	         while(cursor.moveToNext()){

	         long id = cursor.getLong(cursor.getColumnIndex("id"));
	         String ad = cursor.getString((cursor.getColumnIndex("isim")));
	         String soyad = cursor.getString((cursor.getColumnIndex("soyad")));
	         builder.append(id).append(" Adı: ");
	         builder.append(ad).append(" Soyadı: ");
	         builder.append(soyad).append("\n");
	         }

	         TextView text = (TextView)findViewById(R.id.textView4);
	         text.setText(builder);
	      }

Bu metod içerisine bir cursor değeri alıyor. Ardından içinde StringBuilder türünde bir builder değişkeni oluşturuyor. Eğer uygulama içerisinde birden çok string türünde değeri birleştirmek istiyorsak StringBuilder kullanılır. Uygulamamamız içerisinde birden fazla kayıt olabileceği için StringBuilder kullanmak işimizi kolaylaştıracaktır.

Ardından id,ad ve soyad değişkenleri oluşturup, metot içerisine parametre olarak gelen cursor nesnesinin getColumnIndex() metodunu kullanarak ogrenciisim tablosunun kolon isimleri id, isim ve soyad olanlarını bu değişkelere getLong(), getString() metodları yardımıyla gönderiyoruz.

builder.append(id).append(" Adı: ");

komutuyla demek istiyoruz ki; builder.append(id) ile id bilgisini ekle. Hemen yanına append(” Adı: “) diyerek “Adı : ” kelimesini bas.

Örneğin Id= 1 için çıktı ;

“1 Adı: “ şeklinde olacaktır.

builder.append(ad).append(" Soyadı: ");

builder.append(ad) ile ad bilgisini ekle ardından hemen yanına append(” Soyadı: “); diyerek “ Soyadı: ” kelimesini bas.

Örneğin Adı Hüseyin olsun.

Çıktı

“1 Adı: Hüseyin Soyadı : “ şeklinde olacaktır.

Son olarak builder.append(soyad).append(“\n”); diyerek.

builder.append(soyad) ile soyad bilgisini ekle ardından append(“\n”) ekleyerek bir satır aşağıya in demek istiyoruz.

Örneğin Soyadı Bodur olsun.

Çıktı

“1 Adı: Hüseyin Soyadı : Bodur“ olacaktır. Ve yeni bir kayıt geldiğinde bir satır aşağıdan yeni kaydı ekrana bastıracaktır.

En son olarak builder değişkenini TextView içerisine setText(builder) metodu ile set ediyoruz. Yani bastırıyoruz.

TextView text = (TextView)findViewById(R.id.textView4);
text.setText(builder);

Bu metodu da anlattıktan sonra bu iki metodu (KayitGetir() ve KayitGoster() metodlarını) programımız içerisinde çağıralım.

Çağırma işlemini onCreate() metodu içerisinde yaparsak, uygulama sayfası ilk açıldığında veri tabanında bulunan kayıtları ekrana getirebiliriz.

Cursor cursor = KayitGetir();
KayitGoster(cursor);

Çağırma işlemini uygulamaya her yeni kayıt eklediğimizde listemizin güncellenmesi için kayit butonunun Click olayı altında da yapalım.

Uygulamamızın örnek ekran görüntüsü aşağıdaki gibi olacaktır.

17-2

 

17-3

Tabi kayıt sırasında boş kayıt kontrolü yaptırmadığımız için boş kayıt da ekleyebiliyoruz. Bu kontrolü kayıt butonunun click olayı altında yapabilirsiniz.
En son olarak veri tabanı üzerinde arama işlemi nasıl yapılıyor ona bakalım.
Ad bilgisine göre bir arama işlemi yaptıralım ve çıkan sonucu Toast ile ekrana bastıralım.
aramaYap butonun click metodunu yazalım.

aramaYap.setOnClickListener(new View.OnClickListener() {

				@Override
	public void onClick(View v) {
		SQLiteDatabase db = ogrenciler.getReadableDatabase();
		String searchStr = adi.getText().toString();

		Cursor c = db.rawQuery("SELECT isim, soyad FROM ogrenciisim WHERE isim like '"+searchStr+"'", null);

		if (c != null ) { 
		    if  (c.moveToFirst()) {
		         do {
		            String adim = c.getString(c.getColumnIndex("isim"));
		            String soyadim = c.getString(c.getColumnIndex("soyad"));
		            Toast.makeText(MainActivity.this,"Bulunan Sonuç "+ "Adı: " + adim + " ,Soyadı: " +soyadim, Toast.LENGTH_LONG).show();
	                   Log.v("Ad", adim);
		            Log.v("Soyad", soyadim+"");
		            }while (c.moveToNext());
		                    }
		                }
				}
			});

Buradaki kodu incelediğimizde yine okuma işlemi yapacağımız için db nesnesini

ogrenciler.getReadableDatabase()

metoduyla oluşturuyoruz.
Ardından,

String searchStr = adi.getText().toString();

komutuyla adi isimli editText’ten isim değerini alıp searchStr değişkenine aktarıyoruz.

Cursor c = db.rawQuery("SELECT isim, soyad FROM ogrenciisim WHERE isim like '"+searchStr+"'", null);

Komutuyla yazdığımız query’i  “c” isimli cursor’a atıyoruz. Query’lerin içerisinde genellikle sql komutu yazıyoruz. Bu yazdığımız sql komutu; ogrenciisim tablosunda isim kolunundaki değerler searchStr’e benziyorsa, eşleşiyorsa döndür demektir.

Ardından “c” cursoru null değilse yani bir yâda birden fazla kayıt döndürülmüşse o kaydın isim ve soyad değerlerini Toast metoduyla ekrana mesaj olarak bastırıyoruz. Kod içerisinde bulunan do- while döngüsü cursor da kaç kayıt varsa sırasıyla Toast aracılığıyla ekrana basmaya yarar.

Uygulamamızı çalıştırıp, arama yaptığımızda;

17-4

 

Yukarıdakine benzer bir ekran görüntüsü elde edeceksiniz.

Eğer Ahmet kaydı birden fazla olsaydı yukarıda Toast metodunu do-while döngüsü içerisinde yazdığımız için her bir kayıt için Toast mesajı oluşacak ve ekranda görüntülenecekti.

29 Yorum “Veritabanı İşlemleri (Ekleme, Listeleme, Arama İşlemleri)”

  1. avatar Bünyamin diyor ki:

    hocam güzel bi çalışma olmuş ellerinize saglık…

  2. avatar İbrahim diyor ki:

    Tüm kullanıcıları çekerken oluşturduğunuz query metodunda SELECT ifadesi bende çalışmıyor bi türlü tüm veri tabanını listeleyemedim. Yardımcı olabilir misiniz ?

  3. avatar Hüseyin Bodur diyor ki:

    KayitGetir() metdonudaki Cursor u değiştirelim.

    Cursor cursor = db.rawQuery(“SELECT isim, soyad FROM ogrenciisim”, null);
    deneyebilirsin.Yanlız sınıfı SQLiteOpenHelper sınıfından türetmeyi unutma.

    • avatar İbrahim diyor ki:

      Peki teşekkürler. Ayrıca ben kişileri textView a değilde listeye atmak istiyorum onu nasıl yapabilirim acaba ?

      • avatar Hüseyin Bodur diyor ki:

        TextView yeride ListView kullan. ListView değişkeni ile nesneyi ilişkilendir.
        Kod : ListView liste=(ListView) findViewById(R.id.listView1);

        Listeye göndereceğin verileri önce String tipinde bir ArrayList e at.
        Kod : ArrayList listelenecek_veriler = new ArrayList();
        listelenecek_veriler.add(“Veri”);
        listelenecek_veriler.add(“Diğer Veri”);
        listelenecek_veriler.add(“Diğer Veri”);

        Çalıştığımız Activity ve elemanları Adapter’a gönder.
        Bu sayede Adapter ile, oluşturduğumuz listview’e elemanları atacağız.
        Kod : MyListAdapter adapter = new MyListAdapter(this, listelenecek_veriler);

        Son olarak hazırlanmış olan adapter’ı, listview’in geçerli adapter’ı olarak ayarla.
        Kod : liste.setAdapter(adapter);

        • avatar İbrahim diyor ki:

          MyListAdapter olarak tanımladığın kendi yarattığın sınıf yanlış anlamadıysam ? Onun içeriği hakkında da bilgi verebilir misin ?

          • avatar Hüseyin Bodur diyor ki:

            Evet. Örneği koddan verince farketmemişim. Sen o kısımda hazır ArrayAdapter sınıfını kullanabilirsin.
            Kullanımı : ArrayAdapter adapter_adi = new ArrayAdapter(this,R.layout.simple_list_item_1,veriler);

            Burada this: bulunulan activity, R.layout.simple_list_item_1 : eclipse içindeki hazır listeleme tasarımlarından biri
            veriler : kullanıcı isim soyisimleri.

  4. avatar ibrahim diyor ki:

    O şekilde yaptığım zaman karşıma;

    java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView

    hatası çıkıyor ve program patlıyor ne yapmam lazım ?

  5. avatar Serkan diyor ki:

    Hocam öncelikle kolay gelsin çalışmalarınız için de ayrıca teşekkür ederim.Ben sonuçlarımı listview de gösterdikten sonra herhangi bir kayıda tıklanıldıgında detaylarını göstereceğim ayrı bir sayfaya yönlendirmek istiyorum bir nevi QueryString mantığıyla yani id değerini göndererek detaylarını göstermek istiyorum.Bunu nasıl sağlayabilirim kolay gelsin

    • avatar Hüseyin Bodur diyor ki:

      Eğer listview’a tıklandığında id değerini elde edebiliyorsan bundle kullanarak değeri diğer sayfaya aktarabilirsin. Bunun için ayrıntılı örneğe buradan ulaşabilirsin.

      • avatar Hüseyin Bodur diyor ki:

        İstersen id bilgisi yerine göstermek istediğin bilgileri bundle a koyup gönderebilirsin.

        Mesela,

        Bundle yardimci = new Bundle();
        yardimci.putString(“deger1″, “Veriler 1″);
        yardimci.putString(“deger2″, “Veriler 2″);
        yardimci.putString(“deger3″, “Veriler 3″);
        ……
        ….
        Diğer sayfada da yardimci bundle’ını çağırırsın. Yukardaki linkte de anlattım.

  6. avatar Serkan diyor ki:

    Hocam verileri mi veritabanından çekiyorum listview in click metodum şöyle;
    row in the result set
    Cursor cursor = (Cursor) listView.getItemAtPosition(position);
    String countryCode =
    cursor.getString(cursor.getColumnIndexOrThrow(“code”));
    yardimci.putString(“Kod”, countryCode);
    Intent verigitsin=new Intent(getApplicationContext(),detay.class);
    startActivity(verigitsin); ama hata alıyorum

    • avatar Serkan diyor ki:

      public void onItemClick(AdapterView listView, View view,
      int position, long id) {

      Cursor cursor = (Cursor) listView.getItemAtPosition(position);

      String countryCode =
      cursor.getString(cursor.getColumnIndexOrThrow(“code”));

      Intent verigitsin=new Intent(getApplicationContext(),detay.class);
      yardimci.putString(“Kod”, countryCode);
      startActivity(verigitsin);

      }
      });

      • avatar Serkan diyor ki:

        Hocam çözdüm sorunu artık kodlara bakmaktan hiyerarşide problem yaşamışım tamamen bundle anlattığınız konudan gittim çok teşekkür ederim . Hocam projem de son nokta veritabanında eğer ki durum 1 ise textview kırmızı ,2 ise sarı ve 3 ise yeşil renkte olcak.Listviewime verileri doldururken bi kontrol yapmam gerekiyor durum=1 ise textview=yeşil,sarı veya kırmızı gibi

  7. avatar Serkan diyor ki:

    Hocam projemde simplecursor adapter sınıfıyla kendi adapterimi oluşturdum ve listview e me verilerimi bastım ama gelen değere göre if else kontorlü yapıp textview me renk vermem gerekiyor getview metodunu kullandım ama hata aldım nasıl yapabilirim

    • avatar Hüseyin Bodur diyor ki:

      Biz listview a verileri gönderirken verileri bir adapter de topluyoruz. Ardından liste nesnesine mesela liste.setAdapter(adapter); diyerek set ediyoruz. Bu noktada araya bir if kontrol koymak mümkün müdür bilemedim. Ben şöyle yapmayı değenerdim. Listeye verileri bastıktan sonra her bir liste elemanının bir özelliğine karşılığındaki durum değerini gönderirdim. mesela listviewdaki itemId si 0 olanın yani listedeki ilk elemanın setId özelliğine durum değerini gönderirdim.
      Ardından bu noktada if kontrolünü yapar. listemi refresh ederdim.

      Demek istediğim bana kalırsa liste dolarken kontrol yapamazsın.ama liste dolduktan sonra özelliklerini kullanıp elemanlarının yazı rengini değiştirebilirsin.

  8. avatar ENES diyor ki:

    Hocam ben sqlde hazırladığım veritabanını android projeme nasıl bağlarım

  9. avatar gökhan diyor ki:

    getWriteAbleDatabase(); ve getReadAbleDatabase(); fonksiyonlarında sürekli hata alıyorum. debug yaptığımda da hatamın burda oldugunu fark ettim. örneğinizde ki gibi herşeyi yaptım fakat database den verileri çekemiyorum. Yardım etme şansınız var mı?

  10. avatar Emrah Karadağ diyor ki:

    Merhabalar hocam androidde yeniyim eğer mümkünse uygulamayı indirme linki verebilirmisiniz daha iyi incelesem programda açıp şimdiden teşekkür ederim

  11. avatar Enes diyor ki:

    Hocam buttona basınca hiç birşey olmuyor
    Cursor cursor = db.query(“ogrenciisim”, SELECT, null, null, null, null, null); bununla
    Cursor cursor = db.rawQuery(“SELECT isim, soyad FROM ogrenciisim”,null); bunu değiştirdim bundan olabilirmi ?

  12. avatar ibrahim soner kaymaz diyor ki:

    Hocam iyi aksamlar benim sorum şu olacaktı ben veri tabanındaki kayıtları listviewe attım ancak list viewe tıklanınca tıkladıgım verinin ne oldugunu alamadım nasıl alabılırım bana yardımcı olurmusunuz cok tesekurler

    • avatar Hüseyin Bodur diyor ki:

      listview’e click metodunu yazmalısın. Bu metot sana bazı parametreler veriyor, bunlardan biri tıklanan (seçilen) item’ın id’si. İster bu id verisini kullanabilirsin, istersen bu id’ye sahip veriyi (tıklanan içeriği) kullanabilirsin, istersen seçilen veri ile ilgili veritabanı işlemleri gerçekleştirebilirsin.

      Örnek olarak listview’ın adı liste.

      liste.getItemAtPosition(position) sana tıklanan item’ın bilgisini gönderir.
      Detaylı bilgiye http://huseyinbodur.net/?p=171 linkinden ulaşabilirsin.

  13. avatar cihad diyor ki:

    Eğer 2 tablomuz olsaydı o zaman nasıl yapardık?

    • avatar Hüseyin Bodur diyor ki:

      ogrenciisim ve egitim adında iki tablomuz olsun.

      ContentValues veriler = new ContentValues();
      veriler.put(“isim”, isim);
      veriler.put(“soyad”,soyad);
      db.insertOrThrow(“ogrenciisim”, null, veriler);

      ContentValues diger_veriler = new ContentValues();
      diger_veriler.put(“okul”, okul_bilgileri);
      diger_veriler.put(“sinif”,sinif_bilgileri);
      db.insertOrThrow(“egitim”, null, diger_veriler);

      gibi bir kayıt yapabilirdik. Tabi yapacağımız işlem tabloların birbirleriyle olan bağlantılarına göre değişebilir.

Yorum Yaz