新聞中心
安卓系統(tǒng)自帶的數(shù)據(jù)庫(kù)功能解析

我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、明溪ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的明溪網(wǎng)站制作公司
隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,越來(lái)越多的應(yīng)用程序需要存儲(chǔ)和獲取數(shù)據(jù)。為了滿足這種需求,安卓系統(tǒng)提供了內(nèi)置的數(shù)據(jù)庫(kù)功能。這篇文章將會(huì)詳細(xì)解析安卓系統(tǒng)自帶數(shù)據(jù)庫(kù)功能,包括數(shù)據(jù)庫(kù)的類型、創(chuàng)建和更新數(shù)據(jù)庫(kù)、插入和查詢數(shù)據(jù)等方面。
1. 數(shù)據(jù)庫(kù)類型
安卓系統(tǒng)自帶的數(shù)據(jù)庫(kù)類型是 SQLite。SQLite是一個(gè)輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它以C語(yǔ)言編寫(xiě),是一個(gè)非常小巧、高效、可靠、特別適合移動(dòng)設(shè)備的數(shù)據(jù)庫(kù)。安卓系統(tǒng)的一個(gè)重要特色就是內(nèi)置了SQLite數(shù)據(jù)庫(kù),而且API十分簡(jiǎn)潔,易于操作。
2. 創(chuàng)建和更新數(shù)據(jù)庫(kù)
在使用SQLite數(shù)據(jù)庫(kù)前,需要先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。在安卓系統(tǒng)中,要?jiǎng)?chuàng)建和更新SQLite數(shù)據(jù)庫(kù),需要使用 SQLiteOpenHelper 類。SQLiteOpenHelper類封裝了創(chuàng)建或打開(kāi)數(shù)據(jù)庫(kù)的邏輯,它還可以處理數(shù)據(jù)庫(kù)的版本管理。當(dāng)數(shù)據(jù)庫(kù)需要進(jìn)行更新時(shí),用戶需要重寫(xiě)onUpgrade()方法,在其中實(shí)現(xiàn)舊版本數(shù)據(jù)遷移到新版本的操作。
下面是一個(gè)創(chuàng)建和更新數(shù)據(jù)庫(kù)的例子:
“`java
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = “mydatabase.db”;
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(“CREATE TABLE IF NOT EXISTS users (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,age INTEGER)”);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(“DROP TABLE IF EXISTS users”);
onCreate(db);
}
}
“`
這里創(chuàng)建了一個(gè)名為“mydatabase”的數(shù)據(jù)庫(kù),包含一張名為“users”的表格,具有id、姓名和年齡三個(gè)字段。當(dāng)需要更新數(shù)據(jù)庫(kù)時(shí),先刪除舊 version 的數(shù)據(jù)庫(kù),然后再創(chuàng)建新 version 的數(shù)據(jù)庫(kù)。
3. 插入和查詢數(shù)據(jù)
有了數(shù)據(jù)庫(kù)之后,接下來(lái)就是向數(shù)據(jù)庫(kù)中插入數(shù)據(jù)和查詢數(shù)據(jù)了。在SQLite中,操作數(shù)據(jù)主要使用 SQL 語(yǔ)句??梢酝ㄟ^(guò) SQLiteDatabase 類的 insert() 方法來(lái)插入一條記錄,可以通過(guò) query() 方法來(lái)查詢記錄。
下面是一個(gè)插入數(shù)據(jù)和查詢數(shù)據(jù)的例子:
“`java
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = “mydatabase.db”;
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(“CREATE TABLE IF NOT EXISTS users (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,age INTEGER)”);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(“DROP TABLE IF EXISTS users”);
onCreate(db);
}
public boolean insert(String name, int age)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(“name”, name);
contentValues.put(“age”, age);
long result = db.insert(“users”, null, contentValues);
return result != -1;
}
public Cursor getAll(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery(“select * from users”,null);
return res;
}
}
“`
這里的 insert() 方法將 name 和 age 插入到 users 表中, getAll() 方法將查詢所有在用戶表格中的數(shù)據(jù)。
4.
使用安卓系統(tǒng)自帶的 SQLite 數(shù)據(jù)庫(kù)功能可以實(shí)現(xiàn)數(shù)據(jù)持久化的操作。本文對(duì) SQLite 數(shù)據(jù)庫(kù)在安卓系統(tǒng)中的創(chuàng)建、更新、插入、查詢等方面進(jìn)行了詳細(xì)的解析。希望本文所述內(nèi)容對(duì)你有所幫助。
相關(guān)問(wèn)題拓展閱讀:
- 如何在android自帶的sqlite3中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)文件,請(qǐng)大蝦門(mén)詳細(xì)指導(dǎo)
如何在android自帶的sqlite3中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)文件,請(qǐng)大蝦門(mén)詳細(xì)指導(dǎo)
Android中提供4種數(shù)據(jù)存儲(chǔ)的方法:(1)SharedPreferences,用鍵值對(duì)的方式來(lái)存儲(chǔ)數(shù)據(jù),是一種輕量級(jí)的存儲(chǔ)機(jī)制,可以存儲(chǔ)一些屬性等。(2)Files:文件輸入輸出流的方式存儲(chǔ)數(shù)據(jù),F(xiàn)ileInputStream和FileOutputStream。在Android中,文件是一個(gè)應(yīng)用程序私有的,一個(gè)應(yīng)用程序無(wú)法讀寫(xiě)其他應(yīng)用程序的文件。寫(xiě)入SD卡除外。(3)SQLite(4)網(wǎng)絡(luò)(這個(gè)不算吧~~~–!)。
SQLite:
(1)創(chuàng)建和打開(kāi)數(shù)據(jù)庫(kù)可以使用方法openOrCreateDatabase,它會(huì)自動(dòng)去檢測(cè)是否存在數(shù)據(jù)庫(kù),如果存在則打開(kāi),如果不存在則創(chuàng)建一個(gè)數(shù)據(jù)庫(kù);成功返回一個(gè)SQliteDatabase對(duì)象。(2)創(chuàng)建一張表通過(guò)SQL語(yǔ)句實(shí)現(xiàn),調(diào)用sqliteDatabase對(duì)象的execSQL方法,執(zhí)行創(chuàng)建表的SQL語(yǔ)句。
(3)向數(shù)據(jù)表中添加一條記錄可以直接通過(guò)SQL語(yǔ)句實(shí)現(xiàn),也可以使用ContentValue對(duì)象,ContentValue對(duì)象是一個(gè)Map,Key是字段名,Value是值。Cv.put(key,value);然后調(diào)用sqliteDatabase對(duì)象的
insert(tableName,null,cv)方法插入數(shù)據(jù)。
(4)刪除數(shù)據(jù)可以直接執(zhí)行SQL,也可以執(zhí)行sqliteDatabase的delete方法。
(5)同理修改數(shù)據(jù)山敬也是執(zhí)行SQL或調(diào)用update方法,需要傳入ContenValue的對(duì)象表示修改的內(nèi)容。
(6)斗唯數(shù)關(guān)閉數(shù)據(jù)庫(kù)sqliteDatabase.close();
(7)刪除指定表調(diào)用SQL語(yǔ)句即可。
(8)查詢:在Android中查詢數(shù)據(jù)是通過(guò)Cursor類來(lái)實(shí)現(xiàn)的,當(dāng)我們使用SQLiteDatabase.query()方法時(shí),會(huì)得到一個(gè)Cursor對(duì)象,Cursor對(duì)象指向的是每條數(shù)據(jù)。例如cur.moveToFirst();cur.moveToNext();等。在實(shí)際開(kāi)發(fā)中,為了能夠更好地管理和維護(hù)數(shù)據(jù)庫(kù),我們會(huì)封裝一個(gè)繼承自SQLiteOpenHelper類的數(shù)據(jù)庫(kù)操作類。SQLiteOpenHelper的構(gòu)造方空首法中分別需要傳入Context、數(shù)據(jù)庫(kù)名稱、CursorFactory(一般默認(rèn)null)、數(shù)據(jù)庫(kù)版本號(hào)。在SQLiteOpenHelper中首先執(zhí)行的是onCreate方法(當(dāng)數(shù)據(jù)庫(kù)之一次被創(chuàng)建時(shí))。在構(gòu)造函數(shù)中并沒(méi)有真正創(chuàng)建數(shù)據(jù)庫(kù),而是調(diào)用getWriteableDatabase或者getReadableDatabase方法時(shí)才真正去創(chuàng)建數(shù)據(jù)庫(kù),并且返回一個(gè)SQLiteDatabase對(duì)象。
關(guān)于安卓自帶數(shù)據(jù)庫(kù)嗎的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站推廣找創(chuàng)新互聯(lián),老牌網(wǎng)站營(yíng)銷公司
成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)(www.cdcxhl.com)專注高端網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì)制作,網(wǎng)站維護(hù),網(wǎng)絡(luò)營(yíng)銷,SEO優(yōu)化推廣,快速提升企業(yè)網(wǎng)站排名等一站式服務(wù)。IDC基礎(chǔ)服務(wù):云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)、服務(wù)器租用、服務(wù)器托管提供四川、成都、綿陽(yáng)、雅安、重慶、貴州、昆明、鄭州、湖北十堰機(jī)房互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)。
文章題目:安卓系統(tǒng)自帶數(shù)據(jù)庫(kù)功能解析 (安卓自帶數(shù)據(jù)庫(kù)嗎)
本文鏈接:http://m.fisionsoft.com.cn/article/dpgeioo.html
其他資訊
- centos一定要安裝mysql嗎?
- windows開(kāi)機(jī)進(jìn)入修復(fù)模式?(開(kāi)機(jī)顯示還原windows)
- 版本Linux下安裝多個(gè)GCC版本的指南(linux多個(gè)gcc)
- 我12月17日在4S店備案買車,第二天4S說(shuō)備好了,今天4S店打電話說(shuō)備案退回來(lái)了,為什?(網(wǎng)站備案每次提交都被管局說(shuō)是【退回原因主體負(fù)責(zé)人有效證件和被)
- 快速增加數(shù)據(jù)庫(kù)表空間文件大小,提高系統(tǒng)性能!(增加數(shù)據(jù)庫(kù)表空間文件大小)


咨詢
建站咨詢
