MOB İ L UYGULAMA GEL İ ŞT İ RME Hafta 12. VER İ TABANI Di ğ er sistemlerde oldu ğ u Android projelerinde de verileri saklamak, hızlı bir biçimde erişmek,

Slides:



Advertisements
Benzer bir sunumlar
T sql-diğer komutlar Metin Akbulut.
Advertisements

PHP ve MYSQL.
Activity Ekleme İşlemi
4 SQL- Yapısal Sorgulama Dili
Tablo oluşturma İlk olarak tabloları oluşturmamız gerekli..
SQL Structured Query Language
MySQL Veritabanı Sunucusu ve MySQL Veritabanı Kullanımı
SQL’e Giriş.
Veri tabanı bileşenleri
SQL Komutlar 5 Sibel SOMYÜREK.
İndeksler Sibel SOMYÜREK.
EkoPC Bilişim Ltd. Eğitim Hizmetleri
Veri Tabanı Yönetim Sistemleri
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
VERİ TABANI ve YÖNETİMİ
VeriTabanı Uygulama. Tabloları yaratmak için MySQL komutları.
BÖLÜM 6 SQL SERVER KOMUTLARI.
Tetikleyici. Nedir? Bir tablo üzerinde Ekleme silme ve güncellemeye bağlı olarak tetiklenip çalışan SQL kodlarıdır. Genel amacı veri bütünlüğünü korumaktır.
SQL (STRUCTURED QUERY LANGUAGE)
MySQL, SQL ve PHP Öğr.Gör.Şükrü KAYA.
MYSQL 4. HAFTA. mySQL veri türleri INTTamsayı: 'den kadar değişen diziye "signed" (işaretli), 0'dan 'e kadar değişenine.
VIEW (BAKIŞ) OLUŞTURMA
SQL Dili ve MySQL Komutları
SQL’e Giriş ve SELECT Komutu
LINQ (Language Integrated Query)
PHP ve MYSQL.
Iletisim Icin : Blog : E - Mail :
İnternet Programcılığı II
VeriTabanı Uygulama.
PHP ve MYSQL Veritabanı Sunucusu
Veritabanı Kavramları
SQL Sibel SOMYÜREK.
SQL Komutları (2) Uzm. Murat YAZICI.
Oluşturulan layout dosyasında 2 tane Editview ve 2 tane buton bulunmaktadır. Editviewlardan alınan değerler ilk butona tıklandığında veritabanına yazılır.
ANDROID DATABASE. Oluşturulan layout dosyasında 2 tane Editview ve 2 tane buton bulunmaktadır. Editviewlardan alınan değerler ilk butona tıklandığında.
LINQtoSQL Silverligth Uygulamalarında LinqtoSql. LINQ (Language Integrated Query) özellikle dil içerisinde, Sql tarzı sorgular yazabilmemizi ve bunları.
SQL’ e Giriş Uzm. Murat YAZICI.
HIBERNATE Uygulama ile birleştirilmesi hibernate.cfg.xml Ö ğ renci Tablosunun Hibernate’e uyarlanması Session, Transaction save, update, delete HQL Criteria.
PHP ve MYSQL.
Veritabanı Kavramları
BSM447 – MOBİL UYGULAMA GELİŞTİRME
BSM447 – MOBİL UYGULAMA GELİŞTİRME
ADRESİNDEN ÖRNEK VERİ TABANLARINI İNDİRİNİZ
MOB İ L UYGULAMA GEL İ ŞT İ RME Hafta 11. VER İ LER İ SAKLAMA Android sistemlerinde hazırlanacak projelerde verileri saklamak için android sisteminin.
BSM447 – MOBİL UYGULAMA GELİŞTİRME Öğr. Gör. Nevzat TAŞBAŞI 7. Hafta.
Yeni Veritabanı Oluşturma
BSM447 – MOBİL UYGULAMA GELİŞTİRME Öğr. Gör. Nevzat TAŞBAŞI 6. Hafta.
Sayfa Ayarlari Projelerimizde uzerinde yogunlasacagimiz dosyalar Java ve XML dosylari olacaktir.
Yapısal Sorgulama Dili SQL VTYS Giriş Hafta 5 Ders Notu.
Altıncı hafta. Müfredat programı Ödev teslim edenler Mantıksal tasarım ödevini teslim edenler: Belediye Projesi Valilik Projesi Mekan Projesi Konaklama.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
VIEW lerle çalışmak 11.BÖLÜM.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
TETİKLEYİCİ ( Trigger)
ANDROID STUDIO İLE UYGULAMA GELİŞTİRME ÖRNEKLERİ SAVAŞ TUNÇER.
ANDROID STUDIO İLE UYGULAMA GELİŞTİRME ÖRNEKLERİ 2 SAVAŞ TUNÇER.
ANDROİD STUDİO SAYFA NESNELERİ SAVAŞ TUNÇER
C# WINDOWS UYGULAMASI HAZIRLAMA ADO.NET SUNU3- MÜŞTERİ KAYIT FORMU OLUŞTURMA SAVAŞ TUNÇER
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
VERİ TABANI VE VISUAL STUDIO SQL LOCAL DB(YEREL VERİ TABANINI SAYFAYA BAĞLAMA Savaş TUNÇER.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
DML ile veri ekleme, silme ve değiştirme
SQL (STRUCTURED QUERY LANGUAGE)
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-4-DML
Sunum transkripti:

MOB İ L UYGULAMA GEL İ ŞT İ RME Hafta 12

VER İ TABANI Di ğ er sistemlerde oldu ğ u Android projelerinde de verileri saklamak, hızlı bir biçimde erişmek, güncellemek, silmek gibi işlemler için veritabanları kullanılır. Android projelerinde kullanılan veritabanı çeşidi SQLite veritabanıdır. Veritabanı oluşturma ve di ğ er işlemler için SQLite kütüphanesi kullanılır.

VER İ TABANI SQLiteOpenHelper sınıfı

SQLite SQLiteOpenHelper, sınıfından miras alındı ğ ında oluşturucusunun, OnCreate metodu ve OnUpgrade metodunun ezdirilmesi gerekmektedir.

SQLite public class extends SQLiteOpenHelper { public (Context i[,varsa di ğ er parametreler]) { super(i,,null, ); public void onCreate(SQLiteDatabase db) { db.execSQL ); public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }

SQL Tablo oluşturmak için Create Table komutu kullanılır. Alanları oluştururken kullanılacak veri türleri metinleri saklamak için TEXT, sayısal de ğ erleri saklamak için NUMERIC, tamsayı de ğ erleri saklamak için INTEGER, ondalık sayıları saklamak için REAL, di ğ er veri türleri için NONE veri türü kullanılır.

execSQL Sayısal alanın benzersiz olması için AUTOINCREMENT, birincil alan olması için PRIMARY KEY kullanılır. Yabancı anahtar, tetikleyici v.b. SQL sorguları benzer şekilde gerçekleştirilir. Oluşturulan bu sınıf içerisinde SQL komutları çalıştırmak amacıyla kullanılır.

VERiTABANıNıN AÇıLMASı Kayıt ekleme, silme ve de ğ iştirme işlemleri SQLiteDatabase sınıfından bir nesne oluşturulup, getWritableDatabase metodu ile açılması gerekmektedir. Oluşturulan nesnenin getReadableDatabase metodu ile SELECT komutlarını çalıştırarak veritabanındaki kayıtları okumak amacıyla açılması sa ğ lanır.

rawQuery Tabloya kayıt ekleme, güncelleme ve silme işlemlerini SQL komutları kullanarak gerçekleştirmek için rawQuery metodu kullanılır. SQLiteDatabase =.getWritableDatabase(); String = ; data.rawQuery(, null); data.close();

KAYıT EKLEME SORGUSU SQLiteDatabase sınıfının insert veya insertOrThrow metodları kullanılır. ContentValues türünde bir de ğ işken oluşturulur. SQLiteDatabase =.getWritableDatabase(); ContentValues =new ContentValues();.put(, ); data.insertOrThrow(, null, );.close();

KAYıT SiLME SORGUSU SQLiteDatabase sınıfından oluşturulan sınıfın delete metodu kullanılır. Bu metodun birinci parametresi tablonun adı, ikinci parametre varsa where kısıtları, bu kısıtlarda de ğ erlerin gelece ğ i yere “?” konur. Üçüncü parametrede kısıtlarda kullanılacak de ğ erler bir dizi de ğ eri olarak burada dizi olarak girilir. SQLiteDatabase =.getWritableDatabase();.delete,, );.close();

KAYıT GÜNCELLEME SORGUSU Update metodunun; birinci parametresi, güncelleme yapılacak tablonun adıdır. İ kinci parametre de ğ işiklik yapılacak alanlar ve de ğ erleridir. Üçüncü parametre varsa where kısıtları, bu kısıtlarda de ğ erlerin gelece ğ i yere “ ? ” konur. Dördüncü parametrede kısıtlarda kullanılacak de ğ erler bir dizi de ğ eri olarak burada dizi olarak girilir.

KAYıT GÜNCELLEME SORGUSU SQLiteDatabase =.getWritableDatabase(); ContentValues =new ContentValues();.put(, );.update,,, );.close();

KAYıT L İ STELEME SQLiteDatabase sınıfından oluşturulan sınıfın query metodu kullanılır. Bu metodun geriye döndürdü ğ ü de ğ erleri almak için Cursor türünde bir de ğ işken tanımlanır ve sorgu sonucunda gelen de ğ erlere bu Cursor de ğ işkeni ile ulaşılır.

KAYıT L İ STELEME Metodun birinci parametresi sorgulanacak tablonun adıdır. İ kinci parametre sorgulama sonucunda alınmak istenen alanların listesidir. Üçüncü parametre where kısıtlarıdır, bu kısıtlarda de ğ erlerin gelece ğ i yere “ ? ” konur.

KAYıT L İ STELEME Dördüncü parametrede kısıtlarda kullanılacak de ğ erler bir dizi de ğ eri olarak burada dizi olarak girilir. Beşinci parametre varsa group by kısıtlarıdır. Altıncı parametre having kısıtlarıdır. Yedinci parametre sıralamanın belirlendi ğ i order by kısıtlarıdır.

ÖRNEK

LAYOUT DOSYASı <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Ad:" />

LAYOUT DOSYASı <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="Soyad:" /> <EditText android:layout_width="100dp" android:layout_height="25dp" android:textSize="10sp" android:ems="10" />

LAYOUT DOSYASı <EditText android:layout_width="100dp" android:layout_height="25dp" android:textSize="10sp" android:ems="10"> <Spinner android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="17dp" />

LAYOUT DOSYASı <Button android:layout_width="100dp" android:layout_height="30dp" android:textSize="10sp" android:text="Sil" /> <Button android:layout_width="100dp" android:layout_height="30dp" android:text="Listele" android:textSize="10sp" />

LAYOUT DOSYASı <Button android:layout_width="100dp" android:layout_height="30dp" android:text="Kaydet" android:textSize="10sp" />

VERiTABANı DOSYASı package com.example.veritabaniuyg; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class db extends SQLiteOpenHelper { public db(Context i) {super(i,"ornek",null, public void onCreate(SQLiteDatabase db) { db.execSQL ("CREATE TABLE kisiler(id INTEGER PRIMARY KEY AUTOINCREMENT,ad TEXT, soyad TEXT);"); public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }

AKTiViTE DOSYASı package com.example.veritabaniuyg; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast;

AKTiViTE DOSYASı public class MainActivity extends Activity { Button btn1; Button btn2; Button btn3; EditText ad; EditText soyad; TextView tx1; TextView tx2; Spinner liste; db vt; String[] dizim = null; ArrayAdapter arrayAdapter;

AKTiViTE protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1=(Button) findViewById(R.id.kaydet); btn2=(Button) findViewById(R.id.listele); btn3=(Button) findViewById(R.id.sil); ad=(EditText) findViewById(R.id.editText1); soyad=(EditText) findViewById(R.id.editText2); tx1=(TextView) findViewById(R.id.textView1); tx2=(TextView) findViewById(R.id.textView2); liste=(Spinner) findViewById(R.id.spinner1); vt=new db(this);

AKTiViTE DOSYASı btn1.setOnClickListener(new public void onClick(View arg0) { try{ String ad1=ad.getText().toString(); String soyad1=soyad.getText().toString(); kayitekle(ad1,soyad1); Toast.makeText(getApplicationContext(), "Kayıt Eklenmiştir!!!", Toast.LENGTH_LONG).show(); } finally{ vt.close(); } }});

AKTiViTE DOSYASı btn2.setOnClickListener(new public void onClick(View arg0) { try{ String adisi=ad.getText().toString(); kayitlistele(adisi); } finally{ vt.close(); } }});

AKTiViTE DOSYASı btn3.setOnClickListener(new public void onClick(View arg0) { try{ String adisi=ad.getText().toString(); kayitsil(adisi); Toast.makeText(getApplicationContext(), "Kayıt Silinmiştir!!!", Toast.LENGTH_LONG).show(); } finally{ vt.close(); } }); }

AKTiViTE DOSYASı protected void kayitlistele(String adisi) { SQLiteDatabase data=vt.getReadableDatabase(); Cursor okunan; String[] alanlar={"ad","soyad"}; if(adisi=="") okunan=data.query("kisiler", alanlar, null, null,null, null, null); else okunan=data.query("kisiler", alanlar, "ad=?", new String[]{adisi},null, null, null); String eleman=""; String adi=""; String soyadi=""; int i=0;

AKTiViTE DOSYASı dizim=new String[okunan.getCount()]; while(okunan.moveToNext()) { adi=okunan.getString(okunan.getColumnIndex("ad")); soyadi=okunan.getString(okunan.getColumnIndex("soyad")); eleman=adi+" "+soyadi; dizim[i]=eleman; i++; } arrayAdapter = new ArrayAdapter (this, android.R.layout.simple_list_item_1, dizim); liste.setAdapter(arrayAdapter); data.close(); }

AKTiViTE DOSYASı protected void kayitekle(String ad1, String soyad1) { SQLiteDatabase data=vt.getWritableDatabase(); ContentValues cv=new ContentValues(); cv.put("ad", ad1); cv.put("soyad", soyad1); /*cv.put("boy", boy1); cv.put("kilo", kilo1);*/ data.insertOrThrow("kisiler", null, cv); data.close(); } }

TELEFON GÖRÜŞMESi Android projesi içerisinde bir telefon numarasını aramak için telefon arama aktivitesini ça ğ ırmak gerekmektedir. Bunun için Intent altsınıfından ACTION_CALL aktivitesinden bir aktiviteyi ça ğ ırmak için bir Intent oluşturulur. Oluşturulan Intent’in setData metoduna aranacak de ğ er bir uri (uniform resource idendifier) ile aranacak numara başında “tel:” yazılarak sonrasında aranacak numara yazılır. (mesaj göndermek için sms: yazılır)tel:

TELEFON GÖRÜŞMESi Oluşturulan intent aktivitesi start edilerek arama gerçekleştirilir. Aramanın yapılabilmesi için proreje android.permission.CALL_PHONE izni verilmelidir.

AKTiViTE DOSYASı public class MainActivity extends Activity { EditText protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edt=(EditText)findViewById(R.id.editText1); } public void arama(View v) { String telefon=edt.getText().toString(); Intent ara=new Intent(Intent.ACTION_CALL); ara.setData(Uri.parse("tel:"+telefon)); startActivity(ara); } } AndroidManifest dosyası:

BLUETOOTH PROJESi Android projesinde bluetooth ile çalışmak için android.permission.BLUETOOTH, android.permission.BLUETOOTH_ADMIN izinlerinin alınması gerekir. Daha sonra BluetoothAdapter sınıfından bir de ğ işken tanımlanmalıdır.

BLUETOOTH PROJESi E ğ er bluetooth kapalı ise açmak için BluetoothAdapter.ACTION_REQUEST_ENABLE aktivitesini açacak bir intent oluşturarak aktivite başlatılmalıdır. Görünür yapmak için BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE de ğ erine sahip aktivitesini açacak bir intent oluşturarak aktivite başlatılmalıdır.

AKTiViTE DOSYASı public class MainActivity extends Activity { BluetoothAdapter protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void ac(View v) { if(!btadpt.isEnabled()) { Intent blue=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); } }

AKTiViTE DOSYASı public void kapa(View v) { if(btadpt.isEnabled()) btadpt.disable(); } public void gyap(View v) { if(!btadpt.isEnabled()) { Intent blue=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); } } }

KAYNAKLAR database.htmlhttp://yazilimvehayat.blogspot.com/2012/04/sqlite-ile-android-uzerinde- database.html arayuzu-kullanimi/ arayuzu-kullanimi/