Android CRUD İşlemleri

Uzun zamandır yazamadığım android ile ilgili yazılara, kaldığım yerden devam ediyorum.Bu yazıda android’de sqlite kullanımından bahsedeceğim.Seri halinde olacak olan bu postlarımda, her seride daha gelişmiş app’ler yapacağım.Bu yazıda sadece create ve read olaylarından bahsedeceğiz aslında.Öncelikle database isimli bir class oluşturalım ve database konfigurasyonlarımızı yapalım.

package com.example.blogcontent;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class Database extends SQLiteOpenHelper {

private static String db_name=”blog”;
private static int db_version=1;

public Database(Context con)
{
super(con,db_name,null,db_version);
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(“CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,surname TEXT)”);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL(“DROP TABLE IF EXISTS users”);
onCreate(db);

}

}
Yukarıda class ile aynı isimde olan metodumuz(yapılandırıcı method) veritabanı ve surumunu ayarlayarak, veritabanını oluşturmamızı sağlıyor.Onun dışındaki onCreate() metodumuz ise, sqlsorgumuzu çalıştırarak yeni bir table yaratmamızı sağladı. onUpgrade() metodu ise veritabanımızın sürümünü güncellediğimizde, tablolarımızı silip tekrar yaratmamızı sağlar.Database.java dosyamıza ait kodlar bu kadar.Asıl işlerin döndüğü mainactivity’mizden bahsetmeden önce o activity’nin layout’undan bahsedelim.
Relativelayout üzerine kurulu olan 2 editview,2 button,2 textview elemanlarımız ve onlara ait özellikler var.Şimdi de asıl acvitiy’mizin kodlarını inceleyelim.

package com.example.blogcontent;

import android.os.Bundle;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

OnClickListener click;
Database ddb;
String[] COLS={“id”,”name”,”surname”};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText name=(EditText) findViewById(R.id.editText1);
final EditText surname=(EditText) findViewById(R.id.editText2);
Button buton=(Button) findViewById(R.id.button1);
Button display=(Button) findViewById(R.id.button2);
ddb=new Database(this);
click=new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(insert_inform(name.getText().toString(), surname.getText().toString()))
Toast.makeText(getApplicationContext(),”Kayıt işleminiz tamamlandı”,Toast.LENGTH_LONG).show();
else
Toast.makeText(getApplicationContext(),”Kayıt işlemi yapılamadı.tekrar deneyiniz!”,Toast.LENGTH_LONG).show();

}
};
buton.setOnClickListener(click);
display.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
display_informs(get_informs());
}
});
}

public boolean insert_inform(String name,String surname)
{
SQLiteDatabase db=ddb.getWritableDatabase();
ContentValues values=new ContentValues();
values.put(“name”, name);
values.put(“surname”,surname);
db.insertOrThrow(“users”, null, values);
return true;
}

public Cursor get_informs()
{
SQLiteDatabase db=ddb.getReadableDatabase();
Cursor c=db.query(“users”,COLS,null,null,null,null,”id DESC”,”1″);
return c;

}

public void display_informs(Cursor c)
{
Bundle vals=new Bundle();
Intent intent=new Intent(“com.example.blogcontent.OTHERPAGE”);
while(c.moveToNext())
{
int id=c.getInt(c.getColumnIndex(“id”));
String name=c.getString(c.getColumnIndex(“name”));
String surname=c.getString(c.getColumnIndex(“surname”));
vals.putInt(“id”,id);
vals.putString(“name”,name);
vals.putString(“surname”,surname);

}

intent.putExtras(vals);
startActivity(intent);
}

}
Biraz önce oluşturmuş olduğumuz database class’ından; instance yaratıp, veritabanı işlemlerimizde kullanıyoruz.View elemanlarımızı yakaladıktan sonra, ilk butona basılmasıyla beraber insert_inform()metodu çalışıyor.Bu metod sayesinde de kullanıcının girmiş olduğu ad ve soyad bilgilerini alarak, userstablosuna ekliyoruz.Boolean değer döndürerek de clicklistener callback metodumuzun içinde kontrol ettiriyoruz.Eğer ekleme işlemi başarılı bir şekilde gerçekleştiyse “ekleme işlemi gerçekleşti”,ekleme işlemi olmadıysa da “Tekrar deneyiniz!”
mesajlarını bastırıyoruz.Kullanıcı diğer butona tıkladığında ise display_informs ve get_informsmetodlarımız çalışıyor.Öncelikle get_informs metodundan bahsedelim.Bu metodun içinde order by id descve limit 1 vererek son kullanıcı bilgilerini aldırıyoruz ve bunu cursor değişkenine atıyoruz.Bu metoddan dönen cursor değişkenini de display_informs metodumuza parametre olarak geçiriyoruz.Sonra da display_informs’un içinde cursor’u boşaltıp, bundle’a ekleme yapıyoruz.Ardından da bu bundle’ı başka bir activity’e yolluyoruz.Ve diğer activity çalışmaya başlıyor.Diğer activity’mizin kodları ise şöyle;

package com.example.blogcontent;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class otherpage extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.showme);
Bundle bundle=getIntent().getExtras();

int id=bundle.getInt(“id”);
String name=bundle.getString(“name”);
String surname=bundle.getString(“surname”);
StringBuilder build=new StringBuilder();
build.append(“id:”).append(id+”\n”);
build.append(“Name:”).append(name+”\n”);
build.append(“Surname:”).append(surname+”\n”);

TextView tt=(TextView) findViewById(R.id.textView1);
tt.setText(build);

}
}
Buradaki kodlar gayet basit zaten. Gelen bundle’mızı alıp, stringbuilder değişkenimize eklemeler yapıyoruz.Sonra da build’i(StringBuilder değişkeni) textview’imize bastırıyoruz.Böylece son kullanıcı bilgilerini de görüntülemiş oluyoruz.

NOT: Son oluşturduğumuz activity dosyasını manifest.xml dosyasında tanıtmayı unutmayın.Yorumlarınızı bekliyorum.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir