Giriş
Şu satırı dahil ederiz.
Sqlite verisinin Android Studio projelerin asset dizini altında olması tavsiye ediliyor.
SQLiteOpenHelpersınıfından kalıtan bir sınıf içinde şöyle yaparız
Açıklaması şöyle
Basit bir örnek
Şu satırı dahil ederiz.
import android.database.sqlite.SQLiteDatabase;
Açıklaması şöyle.Android wraps the SQLite code and export some java interface (android.database.sqlite.SQLiteDatabase), but miss some advanced features from the original SQLite implementationDosya Nerede Olmalı
1.Custom Function
2.Encryption
3.URI file syntax
4.VFS
Sqlite verisinin Android Studio projelerin asset dizini altında olması tavsiye ediliyor.
+ main
++ assets
+++ db.sqlite <----
++ java
++ res
Yanlışlıkla res dizini altına konabilir. res dizini altında assets diye bir şey yok.constructor+ res
++ drawable
++ layout
++ menu
++ mipmap
++ values
SQLiteOpenHelpersınıfından kalıtan bir sınıf içinde şöyle yaparız
SQLiteDatabase db = getWritableDatabase ()
beginTransaction-endTransaction metodlarıAçıklaması şöyle
The changes will be rolled back if any transaction is ended without being marked as clean (by calling setTransactionSuccessful).
SQLiteDatabase db = ...
db.beginTransaction();
db.execSQL("ALTER TABLE ...");
db.setTransactionSuccessful();
db.endTransaction();
close metodu
Şöyle yaparız.
Verilen SQL'i çalıştırır. Örneğin tablo yaratmak için kullanabiliriz.
Metodun içi şöyle. Sanırım teorik bir limit dönüyor.
Şu satırı dahil ederiz.
isOpen metodu
Şöyle yaparız.
if(db.isOpen())
db.close();
compileStatement metodu
Bir PreparedStatement oluşturur. Şöyle yaparız.String sql = "...";
SQLiteStatement insert = db.compileStatement(sql);
execSQL metoduVerilen SQL'i çalıştırır. Örneğin tablo yaratmak için kullanabiliriz.
SQLiteDatabase db = ...
db.execSQL("CREATE TABLE IF NOT EXISTS users_table (name TEXT, last TEXT)");
Satır eklemek için kullanabiliriz.db.execSQL("INSERT INTO users_table VALUES('" + name + "','" + last + "'");
getMaximumSize metoduMetodun içi şöyle. Sanırım teorik bir limit dönüyor.
public long getMaximumSize() {
long pCount = DatabaseUtils.longForQuery(this, "PRAGMA max_page_count;", null);
return pCount * getPageSize();
}
insert metoduŞu satırı dahil ederiz.
import android.content.sqlite.ContentValues;ContentValues nesnesinin değerleri ile satır yaratır. İşlem başarısız ise -1 döner. Başarılı ise RowID döner. Eğer RowID autogenerated ise değeri 1'den başlar.
ContentValues values = new ContentValues();
values.put(KEY_PRODUCT_TYPE, code);
values.put(KEY_PRODUCT_QUANTITY, continent);
values.put(KEY_PRODCUT_COST, region);
long rowId = db.insert (SQLITE_TABLE, null, values);
isOpen metodu
Şöyle yaparız.
if(db.isOpen())
db.close();
query metodu
Şöyle bir sorgu çalıştırmak isteyelim.
Cursor almak için kullanılabilir.
Şöyle yaparız.
SELECT * FROM Customers
WHERE City LIKE '%XXXX%';
Şöyle yaparız. Parametreler sırasıyla şöyledir.table, columns, selection, selectionArgs, groupBy, having, orderBy, limitCursor cursor = db.query("Customers",
null, "City LIKE ?", new String[] { "%" + name + "%" },
null,
null,
null);
rawQuery metoduCursor almak için kullanılabilir.
String selectQuery = "SELECT * FROM ...";
SQLiteDatabase db = ...
Cursor cursor
= db.rawQuery(selectQuery, null);
setTransactionSuccessful metoduŞöyle yaparız.
SQLiteDatabase db =
db.beginTransaction();
...
db.setTransactionSuccessful();
db.endTransaction();
Hiç yorum yok:
Yorum Gönder