Android Programlama -46 SQLite İnsert İşlemi

Merhaba arkadaşilar bu gün ki makalemde SQite database ine insert işlemini göreceğiz.

Bir önceki makalemde SQLite da tablo create’ ine değinmiştim. Okumadıysanız öncelikle onuı okumanızı tavsiye ederim. Buradan ulaşabilirsiniz.

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;

public class AddProductActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {
EditText urun_kodu;
EditText urun_adi;
EditText urun_cinsi;
EditText urun_adeti;
EditText urun_ozelligi;
Button urun_giris_tarihi;
Button urun_cikis_tarihi;
SimpleDateFormat simpleDateFormat;
String urun_cikis;
private int loaderKeyCode = 0;
private DbHelper mDbHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_product);
urun_kodu = (EditText) findViewById(R.id.urun_kod);
urun_adi = (EditText) findViewById(R.id.urun_adi);
urun_adeti = (EditText) findViewById(R.id.urun_adeti);
urun_cinsi = (EditText) findViewById(R.id.urun_cins);
urun_ozelligi = (EditText) findViewById(R.id.urun_ozellik);
urun_giris_tarihi = (Button) findViewById(R.id.urun_gris_tarih);
urun_cikis_tarihi = (Button) findViewById(R.id.urun_cıkıs_tarih);
simpleDateFormat = new SimpleDateFormat("dd MM yyyy", Locale.US);
Button btnAdd = findViewById(R.id.urun_ekle);

btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
insertdata();
}
});
urun_cikis_tarihi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showDate(1980, 0, 1, R.style.DatePickerSpinner);
}
});

urun_giris_tarihi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showDate(1980, 0, 1, R.style.DatePickerSpinner);
}
});
}


public void insertdata() {

DbHelper dbHelper = new DbHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
/* if (urun_kodu.getText().toString().isEmpty()
|| urun_adi.getText().toString().isEmpty()
|| urun_cinsi.getText().toString().isEmpty() ||
urun_ozelligi.getText().toString().isEmpty() ||
urun_adeti.getText().toString().isEmpty()
|| urun_giris_tarihi.getText().toString().isEmpty()
|| urun_cikis_tarihi.getText().toString().isEmpty()){
Toast.makeText(AddProductActivity.this, "You need to fill everywhere.", Toast.LENGTH_SHORT).show();
} else {*/

ContentValues cv = new ContentValues();
cv.put(ProductContract.ProductEntry.COLUMN_PRODUCT_NAME, urun_kodu.getText().toString());
cv.put(ProductContract.ProductEntry.COLUMN_PRODUCT_PRICE, urun_adi.getText().toString());
cv.put(ProductContract.ProductEntry.COLUMN_PRODUCT_QUANTITY, urun_cinsi.getText().toString());
cv.put(ProductContract.ProductEntry.COLUMN_SUPPLIER_NAME, urun_ozelligi.getText().toString());
cv.put(ProductContract.ProductEntry.COLUMN_SUPPLIER_EMAIL, urun_adeti.getText().toString());
cv.put(ProductContract.ProductEntry.COLUMN_SUPPLIER_PHONE, "");
cv.put(ProductContract.ProductEntry.COLUMN_PRODUCT_IMAGE, urun_cikis);

db.insert(ProductContract.ProductEntry.TABLE_NAME, null, cv);
Toast.makeText(this, urun_adi.getText().toString(), Toast.LENGTH_SHORT).show();
finish();
// }

}

Örnek kodu inceleyecek olursak, database’ e kayıt etmek istediğimiz verileri kullanıcının uygulama arayüzünden girmesini istiyoruz. Bu yüzden xml dosyasına tanımladığımız edittext ve diğer komponentlerimizi tanımlıyoruz. Sonra findviewByid methodu ile xml kodların da tanımladığımız komponentlerle bağlıyoruz.  Kaydet butonunun setonclinklistener özelliğini aktifleştirip içerisinde insertdate() methodunu çağırıyoruz.  Bu methodun içinde daha önceki makalelerde ayrıntılı gördüğümüz dbHelper classının nesnesini oluşturuyoruz. Bu nesnenin de getWritableDatabase(); methodu sayesinde kullanıcıdan aldığım değerleri database’ e yazma işlemini sağlayacağım. Bu aşamada girilen alanların doluluk boşluğunu kontrol ediyoruz. Bütün alanlar doğru ise kullanıcının girmiş olduğu bütün değerler alınıp oluşturulan Contract methodunun nesnesine atanır. Son aşama insert komutuyla contract taki veriler database’e eklenir.

Bir makalenin daha sonuna geldik, esenle kalın..

Kübra Hebeş

Bilgisayar Mühendisi