Android 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是數據庫操作的類

總結

本文主要介紹這個框架的使用,實現增刪查改和數據庫的一些操作,以便開發更好使用操作數據庫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM