Android23之輕量級數據庫存儲(Sqlite)
Sqlite數據庫:關係型數據庫
一、特點與描述:
1、Sqlite數據庫,是一個非常輕量的關係型數據庫(意思就是非常小,只佔用內存的200多K),Android框架已經嵌入了sqlite原生庫,
2、 sqlite3支持的數據類型:null、integer、text、real(實數)、blob(二進制大數據) 也支持其他的類型:varchar、nVarchar、decimal等,使用其他的類型會轉化相對應的類型.
3、支持的操作:支持標準sql語句、表、視圖、觸發器、事務等
4、以文件的形式存放數據庫文件,存放的是用戶的私有數據,位置:/data/data/<packagename>/databases
5、 兩個重要的API:SqliteOpenHelper、 SQLiteDatabase
二、訪問數據庫的流程
1、通過SqliteOpenHelper來創建或打開數據庫, 編寫類,繼承SqliteOpenHelper
構造方法:作用是創建和打開數據庫
onCreate():當數據庫第一次創建的時候,回調此方法,初始化數據庫,例如:創建表
onUpgrade:數據庫版本的更新方法
2、通過SQLiteDatabase對象來操縱數據庫
-增刪改查操作,都必須藉助SQLiteDatabase對象
-獲取SQLiteDatabase:SqliteOpenHelper.getReadableDatabase() 或者SqliteOpenHelper.getWriteableDatabase()
兩種方式的區別:Read..這種:只讀取數據庫中的數據,則使用它更好,例如查詢 Write...:需要操作數據庫中的數據,例如:增刪改
-事務:不可分割,原子性 ,共進退 : 取錢 : 在賬號扣錢 atm 拿到錢 其中任何一步出現異常,都會進行回滾操作,也就是恢復到原來的樣子, 例子:模擬銀行轉賬
爲了更好的說明步驟2,請下如下圖
寫一個工具類DBUtils:進行數據庫的操作,增刪改查,事務等
//其中構造方法就將new DBHelper(繼承自SqliteOpenHelper),拿到DBHelper的對象helper,因爲每個方法中都需要使用該對象從而得到SQLiteDatabase對象來操作數據庫
增加數據操作
修改數據操作
刪除數據操作
//查詢數據操作,
//查詢操作,對遊標的使用,
//事務的使用
接下來使用測試類來測試這些方法是否有用,測試類請看前面的文章,
//插入操作測試
//刪除操作測試
//查詢方法測試
//更新數據方法測試
//事務測試
如何得知操作是否正確進行了呢? 兩種方法
第一種方法:/data/data/<包名>/databases/ 在此目錄下有創建好的數據庫,將其導出來,利用別的軟件將其打開,
第二種方法:通過 sqlite3命令來查看數據庫中的數據
- 進入linux環境 adb shell
- 進入到當前包的/databases/目錄
cd /data/data/com.wuhao. sqlitetest/
- sqlite3 itcast.db
- 寫sql語句
在進入linux環境 adb shell 時有些人會遇到這個問題, 出現此問題原因有二,一是你可能沒打開android虛擬設備,二連接中斷了, 解決方法,打開android虛擬設備, 重新連接Reset adb
正確進入linux環境下,如圖所示:
使用cd 進入到/data/data/目錄下, 可以利用ls查看到當前目錄下所有的文件
使用了 這兩步命令: ①cd /data/data/ ② ls
在進入到目標包名下的databases,在利用ls查看目錄底下有什麼東西,我的包名是com.wuhao.sqlitetest ,你們的不一樣,
命令:①cd com.wuhao.sqlitetest/databases ②ls
能看到我們所創建的數據庫名了,使用命令:sqlite3 book_db; 進入該數據庫中
這樣就成功進入到數據庫中了,接下來就編寫數據庫語句就可以了,例如,查詢所有數據,(前提是該數據庫中有數據,不然查不到)
這樣就可以檢驗我們編寫的那些操作是否正確執行了,
一、特點與描述:
1、Sqlite數據庫,是一個非常輕量的關係型數據庫(意思就是非常小,只佔用內存的200多K),Android框架已經嵌入了sqlite原生庫,
2、 sqlite3支持的數據類型:null、integer、text、real(實數)、blob(二進制大數據) 也支持其他的類型:varchar、nVarchar、decimal等,使用其他的類型會轉化相對應的類型.
3、支持的操作:支持標準sql語句、表、視圖、觸發器、事務等
4、以文件的形式存放數據庫文件,存放的是用戶的私有數據,位置:/data/data/<packagename>/databases
5、 兩個重要的API:SqliteOpenHelper、 SQLiteDatabase
二、訪問數據庫的流程
1、通過SqliteOpenHelper來創建或打開數據庫, 編寫類,繼承SqliteOpenHelper
構造方法:作用是創建和打開數據庫
onCreate():當數據庫第一次創建的時候,回調此方法,初始化數據庫,例如:創建表
onUpgrade:數據庫版本的更新方法
2、通過SQLiteDatabase對象來操縱數據庫
-增刪改查操作,都必須藉助SQLiteDatabase對象
-獲取SQLiteDatabase:SqliteOpenHelper.getReadableDatabase() 或者SqliteOpenHelper.getWriteableDatabase()
兩種方式的區別:Read..這種:只讀取數據庫中的數據,則使用它更好,例如查詢 Write...:需要操作數據庫中的數據,例如:增刪改
-事務:不可分割,原子性 ,共進退 : 取錢 : 在賬號扣錢 atm 拿到錢 其中任何一步出現異常,都會進行回滾操作,也就是恢復到原來的樣子, 例子:模擬銀行轉賬
爲了更好的說明步驟2,請下如下圖
寫一個工具類DBUtils:進行數據庫的操作,增刪改查,事務等
//其中構造方法就將new DBHelper(繼承自SqliteOpenHelper),拿到DBHelper的對象helper,因爲每個方法中都需要使用該對象從而得到SQLiteDatabase對象來操作數據庫
增加數據操作
修改數據操作
刪除數據操作
//查詢數據操作,
//查詢操作,對遊標的使用,
//事務的使用
接下來使用測試類來測試這些方法是否有用,測試類請看前面的文章,
//插入操作測試
//刪除操作測試
//查詢方法測試
//更新數據方法測試
//事務測試
如何得知操作是否正確進行了呢? 兩種方法
第一種方法:/data/data/<包名>/databases/ 在此目錄下有創建好的數據庫,將其導出來,利用別的軟件將其打開,
第二種方法:通過 sqlite3命令來查看數據庫中的數據
- 進入linux環境 adb shell
- 進入到當前包的/databases/目錄
cd /data/data/com.wuhao. sqlitetest/
- sqlite3 itcast.db
- 寫sql語句
在進入linux環境 adb shell 時有些人會遇到這個問題, 出現此問題原因有二,一是你可能沒打開android虛擬設備,二連接中斷了, 解決方法,打開android虛擬設備, 重新連接Reset adb
正確進入linux環境下,如圖所示:
使用cd 進入到/data/data/目錄下, 可以利用ls查看到當前目錄下所有的文件
使用了 這兩步命令: ①cd /data/data/ ② ls
在進入到目標包名下的databases,在利用ls查看目錄底下有什麼東西,我的包名是com.wuhao.sqlitetest ,你們的不一樣,
命令:①cd com.wuhao.sqlitetest/databases ②ls
能看到我們所創建的數據庫名了,使用命令:sqlite3 book_db; 進入該數據庫中
這樣就成功進入到數據庫中了,接下來就編寫數據庫語句就可以了,例如,查詢所有數據,(前提是該數據庫中有數據,不然查不到)
這樣就可以檢驗我們編寫的那些操作是否正確執行了,
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.