溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在android studio中使用SQLiteOpenHelper()建立數(shù)據(jù)庫

發(fā)布時間:2021-03-20 16:12:31 來源:億速云 閱讀:556 作者:Leah 欄目:移動開發(fā)

怎么在android studio中使用SQLiteOpenHelper()建立數(shù)據(jù)庫?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

在android studio中存儲數(shù)據(jù)有三個方法,分別是:

(1)簡單存儲——SharedPreferences

(2)文件存儲:內(nèi)部存儲——應(yīng)用程序私有文件外部存儲——SD卡資源文件——只讀( RAW 、XML)

(3)數(shù)據(jù)庫存儲——SQLiteDataBase

今天我們講講在android studio中利用數(shù)據(jù)庫存儲中的SQLiteOpenHelper()方法建立數(shù)據(jù)庫 SQLiteOpenH

elper中需要重載函數(shù):

onCreate( ):利用SQL語句,在系統(tǒng)中創(chuàng)建數(shù)據(jù)庫(表)功能

onUpgrade( ):利用SQL語句,在系統(tǒng)中升級數(shù)據(jù)庫(表)功能

注:

onCreate()方法只有第一次數(shù)據(jù)庫創(chuàng)建時會用到 onUpgrade( )方法在版本更新會用到

SQLiteOpenHelper中被調(diào)用的函數(shù): getWritable

Database( ):獲取一個可讀寫的SQLiteDatabase對象

getReadableDatabase( ):獲取一個只讀的SQLiteDatabase對象

創(chuàng)建數(shù)據(jù)庫

1.新建一個類繼承SQLiteOpenHelper

怎么在android studio中使用SQLiteOpenHelper()建立數(shù)據(jù)庫

這里按Alt+Enter倆次添加構(gòu)造方法

怎么在android studio中使用SQLiteOpenHelper()建立數(shù)據(jù)庫

public class MySQLOpenHelper extends SQLiteOpenHelper {
 public MySQLOpenHelper(@Nullable Context context , @Nullable String name , @Nullable SQLiteDatabase.CursorFactory factory , int version) {
 super( context , name , factory , version );
 }

(1)這個方法里面是用來創(chuàng)建數(shù)據(jù)庫的

context是一個訪問application環(huán)境全局信息的接口,通過它可以訪問application的資源和相關(guān)的類 context其主要功能如下:啟動Activity 啟動和停止Service 發(fā)送廣播消息(Intent) 注冊廣播消息(Intent)接收者可以訪問APK中各種資源(如Resources和AssetManager等) 可以訪問Package的相關(guān)信息 APK的各種權(quán)限管理 Context就是一個對APK包無所不知的大管家,大家需要什么,直接問它就可以了(2)name是數(shù)據(jù)庫的名字(3)CursorFactory factory游標工廠,用來指向數(shù)據(jù)庫里面的某一行 CursorFactory 用來創(chuàng)建游標的,默認值為null,指向一開始的位置 (4)version數(shù)據(jù)庫的版本號 版本號只能增加,不能遞減,要不然程序會崩潰

其他倆個方法是用來創(chuàng)建表的,接下來會講到我們繼續(xù)構(gòu)建數(shù)據(jù)庫:在 MySQLOpenHelper類中重構(gòu)代碼:

public class MySQLOpenHelper extends SQLiteOpenHelper {
 public MySQLOpenHelper(@Nullable Context context ) {//name是數(shù)據(jù)庫名字,后綴加.db
 super( context , "SQLite.db" , null , 1 );
 }

在MainActivity類中調(diào)用這個方法

MySQLOpenHelper helper=new MySQLOpenHelper( this );

然后再在MainActivity類中實例化數(shù)據(jù)庫添加代碼如下

MySQLOpenHelper helper=new MySQLOpenHelper( this );
 //創(chuàng)建一個可讀可寫的數(shù)據(jù)庫
 SQLiteDatabase writableDatabase=helper.getWritableDatabase();
 //創(chuàng)建一個只可讀的數(shù)據(jù)庫
 SQLiteDatabase readableDatabase=helper.getReadableDatabase();

這個讀者看需要自行構(gòu)建代碼,(只能存在一個)

我們的數(shù)據(jù)庫創(chuàng)建完成了,接下來看看我們的數(shù)據(jù)庫是否創(chuàng)建成功了呢在看之前我們先運行我們的虛擬機,因為數(shù)據(jù)庫是建立在虛擬機里面的,運行完之后我們?nèi)フ覄?chuàng)建的文件。

android3.0以前打開虛擬機中的文件是用導(dǎo)航欄中的Tools中Android,3.0以后為了提供的更新工具把它舍棄了但我們可以通過View導(dǎo)航欄中Tool Windows中的Device File Explorer打開,找到data目錄下的data下的程序的包名,找到創(chuàng)建的數(shù)據(jù)庫(.db文件//另一個是相對應(yīng)的日記文件),右鍵重新建立目錄,然后用SQLite Expert Professional打開 SQLite Expert Professional下載地址:http://www.sqliteexpert.com  找到的文件如圖

怎么在android studio中使用SQLiteOpenHelper()建立數(shù)據(jù)庫

用SQLite Expert Professional 打開后如圖

怎么在android studio中使用SQLiteOpenHelper()建立數(shù)據(jù)庫

看完上述內(nèi)容,你們掌握怎么在android studio中使用SQLiteOpenHelper()建立數(shù)據(jù)庫的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI