Android資料庫存儲 前言: 今天無聊就試試水,寫寫博客,在之前andorid使用數據儲存好像大概有5種方式,其中輕量級的是sqlite資料庫,但是sqlite使用起來好像有麻煩,首先要判斷...之後創建資料庫...創建表...之後就插入數據 那代碼都是一塊塊的,使用起來好麻煩,所有就對資料庫操 ...
Android資料庫存儲
前言:
今天無聊就試試水,寫寫博客,在之前andorid使用數據儲存好像大概有5種方式,其中輕量級的是sqlite資料庫,但是sqlite使用起來好像有麻煩,首先要判斷...之後創建資料庫...創建表...之後就插入數據 那代碼都是一塊塊的,使用起來好麻煩,所有就對資料庫操作進行少少優化
代碼介紹
github:https://github.com/Ruanjiahui/KotlinDatabase
android studio : compile 'ruan.database.com:mydatabase:1.1'
優點:
- 調用方便
- 減少用戶邏輯處理
- 代碼量少
框架設計:
原生使用資料庫需要以下步驟
比如:
- 創建SQLiteOpenHelper 之後在類創建資料庫,創建表等等,這樣子的靈活性比較麻煩
- 創建SQLiteDatabase 之後操作資料庫
- ContentValues是唯一插入資料庫的數據類型 如果你使用對象就必須將Object轉成ContentValues
- 資料庫的數據提取返回cursor,之後手動的將cursor將數據取出來把數據封裝成Object之後再使用
.
.
.
所有原生使用本地資料庫是非常麻煩的事情,所以使用sqlite的時候是非常吃力的
所以才有現在這個框架的出現
SQLiteOpenHelper 和SQLiteDatabase 不需要開發者去創建和操作,之後插入資料庫的時候不在是ContentValues這個數據類型了,可以直接將Object將數據插入資料庫,不需要開發者手動將數據進行類型轉換,其實底層實現的方式還是Object將轉成ContentValues但是不需要開發者去手動轉換而以,實現的方式就是好好利用java的原生反射機制,將Object裡面的數據進行自動轉換成ContentValues,這個樣子不但可以節約開發時間,可以變得更自動化。
從資料庫裡面獲取數據也是不需要手動轉,直接將cursor數據自動封裝成Object,原理其實也是利用java強大的反射機制,完成這個操作。開發者就可以直接一句命令代碼就可以實現從資料庫裡面增刪查改
這個框架也還是實現就是自動判斷創建資料庫和數據表的操作,首先每次啟動app的時候都要檢查資料庫的檢查是否存在,自動判斷,如果沒有該表則自動創建表,這個邏輯方式就不需要開發者去通過代碼實現,讓這個框架幫你實現
說了這麼多應該就可以上代碼解釋了╮(╯▽╰)╭
java
public class Test implements DatabaseCallback{
public Test(Context context){
CheckDatabase.Companion.CheckData(context , "資料庫名稱" , "資料庫表" , this);
}
@NotNull
@Override
public Object CreateTable(@NotNull String database, @NotNull String table, boolean state) {
//通過state判斷這個表是不是存在 true存在false不存在
if (state)
return null;
else{
//這個是創建表的時候 傳入表的結構
Establish establish = new Establish();
establish.put("id" , "int");
establish.put("name" , "varchar(50)");
return establish;
}
}
}
上面的代碼片段是自動檢測資料庫和資料庫表是否存在,之後通過表的結構自動創建表不用手動的判斷表
這個框架是用Kotlin寫的,因為google官方將Kotlin列入android官方語言,所以提前運用一下O(∩_∩)O哈哈~下麵的代碼使用Kotlin語言實現功能和上面的一樣
Kotlin
class Test (var context: Context) : DatabaseCallback{
override fun CreateTable(database: String, table: String, state: Boolean): Any {
if (state)
return null!!
else{
val establish : Establish = Establish()
establish.put("id" , "int")
establish.put("name" , "varchar(50)")
return establish
}
}
init {
CheckDatabase.CheckData(context , "資料庫名稱" , "資料庫表" , this)
}
}
創建完資料庫的表,這個時候剩下的就是資料庫的增刪查改
Java
new BaseUser(context).INSERT("資料庫名稱" , "資料庫表" , object)
new BaseUser(context).DELETE("資料庫名稱" , "資料庫表")
new BaseUser(context).QUERY("資料庫名稱" , "資料庫表" , class)
new BaseUser(context).UPDATE("資料庫名稱" , "資料庫表" , object)
上面4句話就是資料庫的增刪查改就這麼簡單不需要其他的操作
CheckData
Kotlin
BaseUser(context).INSERT("資料庫名稱" , "資料庫表" , object)
BaseUser(context).DELETE("資料庫名稱" , "資料庫表")
BaseUser(context).QUERY("資料庫名稱" , "資料庫表" , class)
BaseUser(context).UPDATE("資料庫名稱" , "資料庫表" , object)
這個是我個人封裝的一個資料庫的小框架裡面
CheckDatabase這個類是實現檢測資料庫和表是否存在的類
BaseUser是資料庫操作的類
總結
本文主要介紹這個框架的使用,實現增刪查改和資料庫的一些操作,以便開發更好使用操作資料庫