Android Database SQLLite



Benzer belgeler
Android ile SQLLite Veri Tabanı

BLM401 Mobil Cihazlar için ANDROID İşletim Sistemi. SQLite Veritabanı. BLM401 Dr.Refik SAMET

MOBİL UYGULAMA GELİŞTİRME

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

MOBİL UYGULAMA GELİŞTİRME

Android Cep Telefonu Programlama

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

SQL e Giriş. Uzm. Murat YAZICI

Listview Kullanımı. Aşağıdaki örnekte bir ListView'ı birkaç ülke ismiyle dolduracağız.

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

ACCESS PLATFORMUNDA SQL

Bölüm 4: DDL Veri Tanımlama Dili

SQL Komutları (2) Uzm. Murat YAZICI

Proje 1. Arayüz Tasarımı

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

Android Ders Notları

SORGULAR. Öğr.Gör.Volkan Altıntaş

VERİTABANI Veritabanı Yönetimi

Üst Düzey Programlama

Liquibase ile Veri Tabanı Değişiklik Yönetimi

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

1 - Button Kontrolu Nasıl Yapılır?

ADO.NET VERİTABANINA BAĞLANTI. Bir web formu üzerinden veritabanına bağlantımızı anlatacağım. UYGULAMA 1

Oracle da kullanılan veri tipleri:

«BM364» Veritabanı Uygulamaları

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

JDBC kütüphanesi, her görev için genellikle veritabanı kullanımı ile ilişkili API leri içerir:

VERİ TABANI YÖNETİM SİSTEMLERİ-II

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

YAPISAL SORGULAMA DİLİ (SQL)

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

MySqlConnection connection; MySqlCommand command; MySqlDataReader reader; MySqlDataAdapter adapter; DataTable table;

VeriTabanı Uygulamaları

İNTERNET TABANLI PROGRAMLAMA- 8.ders VERİTABANI İLE İLGİLİ BİLGİLERİ GÖRÜNTÜLEME, KAYDETME, GÜNCELLEME VE SİLME

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Mysql Veritabanı Komutları

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

İNTERNET TABANLI PROGRAMLAMA- 10.ders GRIDVIEW İÇERİSİNDE YENİ KAYIT EKLEME, FOTOGRAF LİSTELEME, SIRALAMA YAPMA VE DROPDOWN EKLEME

Android Kaynakları (Resources)

BİL-141 Bilgisayar Programlama I (Java)

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

SORGULAR VE ÇEŞİTLERİ II

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

Veri Tabanı Hafta Dersi

PostgreSQL ve PL/pgSQL

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

VERİTABANI. SQL (Structured Query Language)

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

UYGULA İÇİ SATIN ALMA. <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="com.android.vending.

İNTERNET TABANLI PROGRAMLAMA- 9.ders BİLGİLERİN GRIDVIEW İÇERİSİNDE EKLENMESİ, DÜZENLENMESİ VE SİLİNMESİ

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

MOBİL UYGULAMA GELİŞTİRME

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

NOT: VERİTABANINDAKİ TABLOLARI OLUŞTURMAYI DA UNUTMAYACAĞIZ.

KULLANICI TANIMLI FONKSİYONLAR

PostgreSQL ve PL/pgSQL

Her Yönüyle SQL Enjeksiyonu. OWASP-Türkiye Bünyamin Demir

Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek.

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

Veri Tabanı-I 9.Hafta

VERİ TABANI İŞLEMLERİ (NESNE TABANLI PROGRAMLAMA TEKNİĞİ İLE)

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

Oracle Database 11g: Introduction to SQL

SINIF İÇİ UYGULAMA KODLARI

Veritabanı İşlemleri

Veri Yapıları ve Algoritmalar dönem

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

SPSS (Statistical Package for Social Sciences)

BİLGİLERİ GÖRÜNTÜLEME, KAYDETME, GÜNCELLEME VE SİLME İŞLEMLERİNİN BİRLİKTE ANLATIMI

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

C#.Net & Linq (Language Integrated Query)

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

SQL TRIGGERS (Tetikleyiciler)

MOBİL UYGULAMA GELİŞTİRME

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

LINQ Language Integrated Query Dille Bütünleştirilmiş Sorgu Bir Veri Tabanı Tablosundan Veri Gösterme

Veri Tabanı-I 5.Hafta

Transkript:

Android Database SQLLite

Android Mimarisi Android İşletim sistemi, adres defteri, telefon arama, notification, 2D/3D grafik, Database, security/encryption, camera, ses, input/output, web.. gibi kütüphaneler sağlar. http://developer.android.com/images/system-architecture.jpg

SQLLite SQLite açık kaynak kodlu veritabanıdır. SQL syntax, transactions ve sorgular gibi standart ilişkili veritabanı özelliklerini destekler. SQLite, TEXT (java da String gibi), INTEGER(java da long gibi), REAL(java da double gibi) veri tiplerini destekler. Ayrıca diğer tüm tipler veritabanına kaydedilmeden önce yukarda verilen veri tiplerinden birine çevrilmelidir. SQLite, veritabanına girilen değerlerin tiplerini kontrol etmez. Yani string kolonuna integer ifade girebilirsiniz.

SQLLite SQLite her android cihazı içerisinde gömülüdür. SQLite veritabanını kullanırken veritabanı için kurulum gerektirmez. Sadece veritabanını oluştururken ve update işlemi yaparken SQL sorgusu yazılmaz. Diğer tüm işlemler (tablo oluşturma, insert,update,delete,select) SQl sorgusu ile yapılabildiğigibi, Android platformu tarafından komutla yapılır. Örn: Silme: db.delete("ogr", "yas > 10 AND yas < 20", null); Güncelleme: ContentValues newages = new ContentValues(); newages.put("yas",45); db.update("ogr,newages,"num =? OR num =?", new String[ ] {"101", "103" ); SQLite veritabanına erişim dosya sistemine erişimi de içerir. İşlemler yavaş olabilir, bu yüzden veritabanı işlemleri eş zamansız olarak çalıştırılması tavsiye edilir. Eger uygulamanız veritabanı oluşturduysa, bu veritabanına /data/data/<package_name> yolunu izleyerek ulaşılabilir.

SQLiteOpenHelper Sınıfı ve Veritabanı oluşturmak ve güncellemek Android uygulamalarda veritabanı oluşturmak ve güncellemek için SQLiteOpenHelper ın alt sınıfları kullanılır. SQLiteOpenHelper ın constructor ına (yapıcı sınıf) veritabanının ismi ve güncel database versiyonu gönderilir. public MySQLiteHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); Bu sınıfta iki tane metot override edilmelidir. metottur. oncreate() : Veritabanının oluşturan metottur. onupgrade() : Daha önceden oluşturulmuş veritabanını güncellemeye yarayan Her iki metot SQLiteDatabese nesnesi alır. SQLiteOpenHelper sınıfı veritabanı nesnesine erişmek için getreadabledatabase() ve getwritabledatabase() metotlarını sağlar. Veritabanı tablolarında primary key kullanılmalıdır. http://www.akilliyazilim.org/androiddersleri/sqlite-ve-android-temel-bilgiler.html

SQLiteOpenHelper Sınıfı ve Veritabanı oluşturmak ve güncellemek SQLiteDatabase temel SQLite Database işlemlerinin yapılmasını sağlar, insert(), update(), delete(). Ayrıca ek olarak SQL sorgularını çalıştırabilmek için execsql() metodu vardır. ContentValues nesnesi anahtar/değer tanımlamak için kullanılır. Anahtar kelimesi tablolardaki sütun isimlerini, değer ise sütun içi değerleri temsil etmektedir. Sorgular rawquery() ve query() metotlarıyla yada SQLiteQueryBuilder sınıfıyla oluşturulur. rawquery() : SQL seçme sorguları için kullanılır. query() : Özel SQL sorguları için yapılandırılmış arayüzü sağlar. SQLiteQueryBuilder ise SQLite sorgularını çalıştırmak için yardımcı olan sınıftır. http://www.akilliyazilim.org/androiddersleri/sqlite-ve-android-temel-bilgiler.html

rawquery() SQLiteDatabase db = this.getreadabledatabase(); Cursor cursor = db.rawquery("select * from ogr where num =?", new String[ ] { num ); query() return database.query(database_table, new String[] { KEY_ROWID, KEY_CATEGORY, KEY_SUMMARY, KEY_DESCRIPTION, null, null, null, null, null); query() metodu aşağıdaki parametreleri alır. Parameter Comment String dbname Sorgunun çalıştırılacağı tablo ismi. String[] columnnames Return edilecek kolon isimleri. Tüm kolonlar için null girilir. String whereclause Belli dataları seçmek için girilecek koşuldur. String[] selectionargs whereclause koşulunda? konulan dataların değeri girildiği yer. String[] groupby Seçilen satırları belli koşula göre gruplara ayırmayı sağlar. String[] having Gruba ayrılan satırları filtrelemek için kullanılır String[] orderby Seçilen satırları sıralamak için kullanılır. http://www.akilliyazilim.org/androiddersleri/sqlite-ve-android-temel-bilgiler.html

Tablo Oluşturma SQLiteDatabase db= new SQLiteDatabase(); db.execsql("create table ogr(num text, yas integer)"); //Constructure public MySQLiteHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); //SQLiteOpenHelper sınıfının implement methodları @Override public void oncreate(sqlitedatabase db) { String tablo = "CREATE TABLE ogr ( " + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "num TEXT, "+ "adsoy TEXT )"; db.execsql(tablo);

KAYIT EKLEME (INSERT) T-SQL ile CREATE TABLE ogr(id integer primary key, num text unique, adsoy text,yas integer) INSERT INTO ogr (num,adsoy,yas) VALUES( 101, Ali Can,19) INSERT INTO ogr (num,adsoy,yas) VALUES( 102, Fatma kara,22) Android SQLite ContentValues yenikayit = new ContentValues(); yenikayit.put("num", "101"); yenikayit.put("adsoy", "Ali Can"); yenikayit.put("yas", 19); db.insert("ogr", null, yenikayit ); Replace ContentValues yenikayit = new ContentValues(); yenikayit.put("num", "101"); yenikayit.put("adsoy", "Ali Can"); yenikayit.put("yas", 19); db.replace("ogr", null, yenikayit); sqlite> select * from test; 3 foo bar

KAYIT SİLME (DELETE) Normal T-SQL komutu DELETE FROM ogr WHERE yas > 10 AND yas < 20 SQLite SQLiteDatabase db = this.getwritabledatabase(); db.execsql("delete from ogr where yas > 10 AND yas < 20"); veya db.delete("ogr", "yas > 10 AND yas < 20", null); yas i 10 ile 20 arası olan kayıtları siler db.delete("ogr", "yas =? OR num =?", new String[] {"15", "101"); yas i 15 veya numarası 101 olan kayıtları siler db.delete("ogr", "yas =?2 OR num =?1", new String[] {"101", "15"); yas i 15 veya numarası 101 olan kayıtları siler

VERİ GÜNCELLEM (UPDATE) Normal SQL komutu ile UPDATE ogr SET yas = 99 WHERE num = 101 OR num = 103 SQLLite SQLiteDatabase db = this.getwritabledatabase(); db.execsql("delete from ogr where num> 10 OR num= 103 "); VEYA ContentValues newages = new ContentValues(); newages.put("yas", Integer.valueOf(99)); db.update("ogr ); newages, "num =? OR num =?", new String[ ] {"101", "103"

ContentValues ContentValues ile INSERT, REPLACE, UPDATE işlemleri yapılabilir ContentValues cvalues = new ContentValues(); cvalues.put("columnname1", value1); cvalues.put("columnname2", value2);... db.insert("tablename", null, cvalues); veya db.replace("tablename", null, cvalues); VEYA SQLiteDatabase db = this.getwritabledatabase(); db.execsql("insert INTO ogr(num,adsoy) VALUES ( 101, Ali can )

SORGU(QUERY) YAZMA Normal SQL sorgusu SELECT table1.name, sum(table2.price) FROM table1, table2 WHERE table1.supplier = table2.id AND table1.type = "spigot" GROUP BY table1.name HAVING sum(table2.price) < 50 ORDER BY table1.name ASC LIMIT 100 Android SQLLite Cursor c = db.query( og, new String[] { "num", "adsoy", "yas >?", new String[] { "50", null, // group by null, // having "num ASC ); Veya SQLiteDatabase db = this.getreadabledatabase(); Cursor c = db.rawquery("select * from ogr where yas>50 order by num ASC;", null);

Transaction db.begintransaction(); try { // sql komutları... db.settransactionsuccessful(); finally { db.endtransaction();

BAZI SqlLite metodları SQLiteDatabase db; db.execsql("sql query"); Bazı Metodlar: db.begintransaction(), db.endtransaction() db.delete("table","whereclause",args) db.deletedatabase(file) db.insert("table",null,values) db.query(...) db.rawquery("sqlquery",args) db.replace("table",null,values) db.update("table",values,"whereclause",args)

Creating a Database: The SQLiteOpenHelper Class DATABASE oluşturma public class MyHelper extends SQLiteOpenHelper { public static final String DATABASE = "OgrDb.db"; public static final int VERSION = 6; //... public KeyValHelper(Context context) { super(context, ATABASE, null, VERSION); //...

CURSORS, LOADERS, AND ADAPTERS

Cursor, sorgu sonucunu tutar ve bu sonuçlar üzerinde satır satır hareket etmeyi sağlar. CURSOR Sorgu sonucunda oluşan kayıt sayısını getcount() metodu ile öğrenebiliriz. Sorgu sonucunda elde edilen satırlar arasında movetofirst(), movetonext() metotları ile hareket edilir. Sorgunun son elementine erişilip erişilmediği isafterlast() metodu ile öğrenilir. Cursor nesnesi getstring(), metotları ile sonuçları almayı sağlar. Örneğin getlong(kolonindex), getstring(kolonindex). Cursor nesnesi ile işlemler bittiğinde close() mtodu ile kapatılır. http://www.akilliyazilim.org/androiddersleri/sqlite-ve-android-temel-bilgiler.html

CURSOR String query = "SELECT * FROM TABLO ; SQLiteDatabase db = this.getwritabledatabase(); Cursor cursor = db.rawquery(query, null); Cursor ile belirli bir kaydı elde etme SQLiteDatabase db = this.getreadabledatabase(); Cursor cursor = db.query( TABLE_ADI, // a. table COLUMNS, // b. column names " id =?", // c. selections new String[] { String.valueOf(id), // d. selections args null, // e. group by null, // f. having null, // g. order by null); // h. limit

CURSOR cursor.movetofirst() cursor.movetolast() cursor.movetoprevious() cursor.movetonext() cursor.movetoposition(int index)

CURSOR ile elde dilen verileri alma Cursor dan elde edilen bilgide önce bilgi olup olmadığına bakılır if (cursor!= null) cursor.movetofirst(); Daha sonra cursor ile tüm veri seti üzerinde hareket ederek satır satır okunur. while (cursor.movetonext()) { Integer id = getint(cursor, ididx); String key = cursor.getstring(keyidx); Aynı şey şu şekilde de yapılabilir: for (int i = 0; i < cursor.getcount(); i++) { cursor.movetoposition(i); Integer id = getint(cursor, ididx); String key = cursor.getstring(keyidx);

Cursor Cursor cursor = db.rawquery("select * FROM students"); cursor.movetofirst(); do { int id = cursor.getint(cursor.getcolumnindex("id")); String email = cursor.getstring(cursor.getcolumnindex("email"));... while (cursor.movetonext()); cursor.close(); Cursor dan elde edilen kayıtlardan bilgi elde etme getblob(index), getdouble(index), getcolumncount(), getfloat(index), getcolumnindex(name), getint(index), getcolumnname(index), getlong(index), getcount(), getstring(index),

SimpleCursorAdapter SimpleCursorAdapter( Context context, int childlayout, Cursor c, String[ ] from, int[ ] to ); Kaynak: Pro Android book, page:160

Adapters and View Binders SimpleCursorAdapter(Context context, int childlayout, Cursor c, String[] from, int[] to) context Usually the activity from which this list is visible. layout The ID of standard XML layout for a single cell in the list view. This is the target for the cursor data. cursor The source cursor from which data is obtained. Each row in this cursor corresponds to a cell in the list view and each column to a subview in the cell s layout. from An ordered list of column names. to An ordered list of IDs for corresponding subviews of the list cell layout. The content Kaynak: Enterprise Android, Wrox, page:76

Adapters and View Binders res / layout / My_row.xml <RelativeLayout> <TextView android:id="@+id/lw_num /> <TextView android:id="@+id/lw_adsoy /> <TextView android:id="@+id/lw_yas /> </RelativeLayout>

Adapters and View Binders activity_main.xml dosyasının içeriğini aşağıdaki gibi düzenleyiniz. Sadece ListView nesnesinde düzenleme yapacağız. Bunu id sini android:id="@+id/android:list" şeklindende belirleyelim <RelativeLayout.> <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/android:list" /> </RelativeLayout>

Adapters and View Binders Özel layout xml dosyası res/layout/myrow.xml <RelativeLayout> <TextView android:id="@+id/lw_num /> <TextView android:id="@+id/lw_adsoy /> <TextView android:id="@+id/lw_yas /> </RelativeLayout> JAVA KODU @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); private static final String [ ] from= new String[ ] { "num", "adsoy", "yas" ; private static final int [ ] to = new int[ ] { R.id.lw_num, R.id.lw_adsoy, R.id.lw_yas ; SimpleCursorAdapter dataadapter; dataadapter =new SimpleCursorAdapter(this, R.layout.Myrow, cursor, from, to, 0 )); ListView lv = getlistview(); lv.setadapter(dataadapter);

SqlLite Manager SqlLite Explorer Professional Firefox eklentisi olarak Firefox SqlLite Manager yeterlidir. Menüden Database->New database seçeneğini tıklayın. Açılan pencerede yeni veritabanının ismini girin, sonuna sqlite uzantısı otomatik olarak eklenecektir.

Komut Satırından SqlLite işlmeleri sqlite> create table test (key integer primary key, val text); sqlite> insert into test ( val ) values ("something"); sqlite> insert into test ( val ) values ("something else"); sqlite> select * from test;

Örnek KITAP Id integer primarykey autoincerement Baslik Text Yazar Text Yukarıdaki tablo yapısını oluşturup; Ekleme, Silme Değiştirme Arama Listeleme Işlemlerini yapalım

Book Class ını oluşturalım public class Book { private int id; private String title; private String author; public Book(){ public Book(String title, String author) { super(); this.title = title; this.author = author; @Override public String tostring() { return "Book [id=" + id + ", title=" + title + ", author=" + author+ "] ; public int getid() { return id; public String gettitle() { return title; public String getauthor() { return author; public void setid(int id) { this.id=id; public void settitle(string title) { this.title= title; public void setauthor(string author) { this.author= author;

SQLLİTE için Gerekli Kütüphaneler import android.database.cursor; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqliteopenhelper;

SqlLiteOpenHelper Classı ile DATABSE oluşturma public class MySQLiteHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1; private static final String DATABASE_NAME = "BookDB ; private static final String TABLE_BOOKS = "books ; private static final String KEY_ID = "id"; private static final String KEY_TITLE = "title"; private static final String KEY_AUTHOR = "author ; private static final String[] COLUMNS = {KEY_ID,KEY_TITLE,KEY_AUTHOR; public MySQLiteHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); @Override public void oncreate(sqlitedatabase db) { String CREATE_BOOK_TABLE = "CREATE TABLE books ( " + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "title TEXT, "+ "author TEXT ) ; db.execsql(create_book_table); // create books table

Tablonun Yeniden Oluşturulması veya Değiştirilmesi @Override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { db.execsql("drop TABLE IF EXISTS books"); this.oncreate(db);

Tabloya veri Ekleme (INSERT) public void addbook(book book){ Log.d("addBook", book.tostring()); // 1. get reference to writable DB SQLiteDatabase db = this.getwritabledatabase(); // 2. create ContentValues to add key "column"/value ContentValues values = new ContentValues(); values.put(key_title, book.gettitle()); // get title values.put(key_author, book.getauthor()); // get author // 3. insert db.insert(table_books, // table null, //nullcolumnhack values); // key/value -> keys = column names/ values = column values // 4. close db.close();

Tabloya veri Güncelleme(UPADTE) public int updatebook(book book) { // 1. get reference to writable DB SQLiteDatabase db = this.getwritabledatabase(); // 2. create ContentValues to add key "column"/value ContentValues values = new ContentValues(); values.put("title", book.gettitle()); // get title values.put("author", book.getauthor()); // get author // 3. updating row int i = db.update(table_books, //table values, // column/value KEY_ID+" =?", // selections new String[] { String.valueOf(book.getId()) ); //selection args // 4. close db.close(); return i;

Tablodan veri Silme (DELETE) public void deletebook(book book) { // 1. get reference to writable DB SQLiteDatabase db = this.getwritabledatabase(); // 2. delete db.delete(table_books, KEY_ID + " =?", new String[]{String.valueOf(book.getId())); // 3. close db.close(); Log.d("deleteBook", book.tostring());

Tablodan veri Okuma (Cursor) SQLiteDatabase db = this.getreadabledatabase(); // 2. build query Cursor cursor = db.query(table_books, // a. table COLUMNS, // b. column names " id =?", // c. selections new String[ ] { String.valueOf(id), // d. selections args null, // e. group by null, // f. having null, // g. order by null); // h. limit // 3. if we got results get the first one if (cursor!= null) cursor.movetofirst(); cursor.getstring(0);

Tablodan veri Okuma (Cursor) public Book getbook(int id){ // 1. get reference to readable DB SQLiteDatabase db = this.getreadabledatabase(); // 2. build query Cursor cursor = db.query(table_books, // a. table COLUMNS, // b. column names " id =?", // c. selections new String[] { String.valueOf(id), // d. selections args null, // e. group by null, // f. having null, // g. order by null); // h. limit // 3. if we got results get the first one if (cursor!= null) cursor.movetofirst(); // 4. build book object Book book = new Book(); book.setid(integer.parseint(cursor.getstring(0))); book.settitle(cursor.getstring(1)); book.setauthor(cursor.getstring(2)); Log.d("getBook("+id+")", book.tostring()); // 5. return book return book;

Tablodan veri Okuma (Cursor) public List<Book> getallbooks() { List<Book> books = new LinkedList<Book>(); // 1. build the query String query = "SELECT * FROM " + TABLE_BOOKS; // 2. get reference to writable DB SQLiteDatabase db = this.getwritabledatabase(); Cursor cursor = db.rawquery(query, null); // 3. go over each row, build book and add it to list Book book = null; if (cursor.movetofirst()) { do { book = new Book(); book.setid(integer.parseint(cursor.getstring(0))); book.settitle(cursor.getstring(1)); book.setauthor(cursor.getstring(2)); // Add book to books books.add(book); while (cursor.movetonext()); Log.d("getAllBooks()", books.tostring()); return books;

KUALLINMI MySQLiteHelper db = new MySQLiteHelper(this); // Ekleme Book kitap= new Book(); kitap.settitle(et.gettext().tostring()); kitap.setauthor(et1.gettext().tostring()); db.addbook(kitap); //veya db.addbook(new Book(et.getText().toString(), et1.gettext().tostring())); // get all books //List<Book> list = db.getallbooks(); // delete one book //db.deletebook(list.get(0));

KUALLINMI MySQLiteHelper db = new MySQLiteHelper(this); // get all books List<Book> list = db.getallbooks(); // Bir Kaydı okuma Book b = db.getbook(1); et.settext(b.gettitle()); et1.settext(b.getauthor());

SORU Ad soyad Telefoncep Telefonev Email Bölümü Programı Bilgilerini KAYIT, DEĞİŞTİRME, SİLME, LİSTELEME, ARAMA yapacak Android SQLLite programını yazınız