Assalamualaiku Warrahmatullahi Wabarakatu
Pada kesempatan kali ini saya akan menjelaskan tentang SQLiteDatabase.
SQLiteDatabase adalah Kelas pembantu untuk mengelola pembuatan basis data dan manajemen versi.
Anda membuat implementasi subclass onCreate (SQLiteDatabase), onUpgrade (SQLiteDatabase, int, int) dan opsional onOpen (SQLiteDatabase), dan kelas ini menangani pembukaan basis data jika ada, membuatnya jika tidak, dan meningkatkannya seperlunya . Transaksi digunakan untuk memastikan database selalu dalam keadaan yang masuk akal.
Kelas ini memudahkan implementasi ContentProvider untuk menunda membuka dan meningkatkan database hingga penggunaan pertama, untuk menghindari pemblokiran startup aplikasi dengan upgrade database yang berjalan lama.
Untuk contoh, lihat kelas NotePadProvider di aplikasi sampel NotePad, di contoh / direktori SDK.
Dan saya akan memberikan contoh kode SQLiteDatabase
public class MyDatabaseHelper extends SQLiteOpenHelper { //nama database private static final String NAMA_DATABASE = "db_todo"; //versi database private static final int VERSI_DATABASE = 1; // construcotor public MyDatabaseHelper(Context context) { super(context, NAMA_DATABASE, null, VERSI_DATABASE); }
Kode ini berfungsi untuk membuat table ketika aplikasi pertama kali diinstall @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { //buat table pertama kali ketika aplikasi diinstall sqLiteDatabase.execSQL(Todo.BUAT_TABEL);
}
Kode ini berfungsi untuk, jika ada table sebelummnya maka hapus table yang telah ada @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + Todo.NAMA_TABEL); //untuk membuat table lagi onCreate(sqLiteDatabase); } Kode ini berfungsi untuk menyimpan data, untuk menambah data, value data, masukkan data ke dalam contentValue dan
memasukkan data row lalu menutup database dan keluarkan hasil id dari proses menyimpan data public long simpanData(String nama, String deskripsi, String kategori) { SQLiteDatabase sqLiteDatabase = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(Todo.COLUMN_NAMA, nama); contentValues.put(Todo.COLUMN_DESKRIPSI, deskripsi); contentValues.put(Todo.COLUMN_KATEGORI, kategori); long id = sqLiteDatabase.insert(Todo.NAMA_TABEL, null, contentValues); sqLiteDatabase.close(); return id; } Kode ini berfungsi untuk mengambil 1 row data berdasarkan id dan memposisikan cursort tabel
ke data yang dituju, lalu memposisikan data yg dipilih cursor ke paling atas dan posisikan
cursor ke data, lalu data yg ditemukan cursor dimasukkan ke dalam model. lalu hilangkan cursor
beserta koneksi data dan kembalikkan data public Todo getTodo(long id) { //minta akses mengambil data SQLiteDatabase sqLiteDatabase = this.getReadableDatabase(); Cursor cursor = sqLiteDatabase.query(Todo.NAMA_TABEL, new String[]{Todo.COLUMN_ID, Todo.COLUMN_NAMA, Todo.COLUMN_DESKRIPSI, Todo.COLUMN_WAKTU, Todo.COLUMN_KATEGORI}, Todo.COLUMN_ID + "?=", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) cursor.moveToFirst(); Todo todo = new Todo( cursor.getInt(cursor.getColumnIndex(Todo.COLUMN_ID)), cursor.getString(cursor.getColumnIndex(Todo.COLUMN_NAMA)), cursor.getString(cursor.getColumnIndex(Todo.COLUMN_DESKRIPSI)), cursor.getString(cursor.getColumnIndex(Todo.COLUMN_WAKTU)), cursor.getString(cursor.getColumnIndex(Todo.COLUMN_KATEGORI)) ); cursor.close(); return todo; } Kode ini berfungsi untuk mengambil seluruh data, lalu Query mengambil semua data dan memasukkan
data ke list, lalu tutup koneksi dan hilangkan cursor public List<Todo> ambilSemuaData() { List<Todo> listTodo = new ArrayList<>(); String query = "SELECT * FROM " + Todo.NAMA_TABEL + " ORDER BY " + Todo.COLUMN_WAKTU + " DESC"; SQLiteDatabase sqLiteDatabase = this.getWritableDatabase(); Cursor cursor = sqLiteDatabase.rawQuery(query, null); if (cursor.moveToFirst()) { do { Todo todo = new Todo(); todo.setId(cursor.getInt(cursor.getColumnIndex(Todo.COLUMN_ID))); todo.setNama(cursor.getString(cursor.getColumnIndex(Todo.COLUMN_NAMA))); todo.setDeskripsi(cursor.getString(cursor.getColumnIndex(Todo.COLUMN_DESKRIPSI))); todo.setWaktu(cursor.getString(cursor.getColumnIndex(Todo.COLUMN_WAKTU))); todo.setKategori(cursor.getString(cursor.getColumnIndex(Todo.COLUMN_KATEGORI))); listTodo.add(todo); } while (cursor.moveToNext()); } sqLiteDatabase.close(); return listTodo; } Kode ini berfungsi untuk query mengambil seluruh data, lalu buka database dan izin membaca data
lalu arahkan cursor pada data yang dituju dan tampung jumlah seluruh data di variable dan tutup database, lalu
hasilkan jumlah database
public int ambilJumlahData() { String query = "SELECT * FROM " + Todo.NAMA_TABEL; SQLiteDatabase sqLiteDatabase = this.getReadableDatabase(); Cursor cursor = sqLiteDatabase.rawQuery(query, null); int jumlah = cursor.getCount(); cursor.close(); return jumlah; } }
0 komentar
Posting Komentar