日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Android數(shù)據(jù)庫(kù)操作封裝類:更好的開發(fā)體驗(yàn)(android數(shù)據(jù)庫(kù)操作封裝類)

Android平臺(tái)上的應(yīng)用程序開發(fā)離不開數(shù)據(jù)庫(kù)的支持,數(shù)據(jù)庫(kù)的操作不僅是應(yīng)用程序運(yùn)行的核心,準(zhǔn)確無(wú)誤的操作也直接影響著程序的性能和用戶體驗(yàn)。在Android開發(fā)中,為了提高開發(fā)效率,開發(fā)者們經(jīng)常使用數(shù)據(jù)庫(kù)操作的封裝類來簡(jiǎn)化操作,減少冗余代碼,以下介紹一種android數(shù)據(jù)庫(kù)操作封裝類,可以讓開發(fā)者更好的體驗(yàn)數(shù)據(jù)庫(kù)操作。

成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元孝感做網(wǎng)站,已為上家服務(wù),為孝感各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

一、封裝類的介紹

這種封裝類是基于Android平臺(tái)中的Sqlite數(shù)據(jù)庫(kù)實(shí)現(xiàn)的,它能夠簡(jiǎn)化Sqlite的操作,實(shí)現(xiàn)代碼復(fù)用,提高開發(fā)效率。使用這種封裝類可以避免常見的錯(cuò)誤,比如Sql注入攻擊等。可以支持多線程操作,避免多線程同步問題。

二、使用方法

1. 添加依賴

在Android項(xiàng)目的build.gradle中添加如下依賴:

“`

dependencies {

implementation ‘com.lib.databasehelper:dbhelper:1.0.0’

}

“`

2. 初始化

在Application的onCreate方法中,進(jìn)行數(shù)據(jù)庫(kù)的初始化:

“`

DbHelper.init(this, “database.db”);

“`

3. 創(chuàng)建表

在需要?jiǎng)?chuàng)建表的Activity或者Fragment中,通過繼承DbTable來創(chuàng)建相應(yīng)的數(shù)據(jù)庫(kù)表,比如下面的示例代碼:

“`

public class OrderTable extends DbTable {

public OrderTable(SQLiteDatabase db) {

super(db);

}

@Override

protected void onCreate() {

createTable(“Order”, new String[]{

“_id INTEGER PRIMARY KEY AUTOINCREMENT”,

“name TEXT NOT NULL”,

“price REAL NOT NULL”

});

}

}

“`

這段代碼創(chuàng)建了一個(gè)名為Order的表,包括_id、name、price三個(gè)字段,其中_id為自增長(zhǎng)的主鍵,其他兩個(gè)字段都不能為空。

4. 數(shù)據(jù)的增刪改查

數(shù)據(jù)的增刪改查可以直接調(diào)用封裝類DbManager的相應(yīng)方法,比如插入一條數(shù)據(jù)的示例代碼:

“`

ContentValues values = new ContentValues();

values.put(“name”, “test”);

values.put(“price”, 3.0);

DbManager.getInstance().insert(“Order”, values);

“`

查詢所有數(shù)據(jù)的示例代碼:

“`

Cursor cursor = DbManager.getInstance().query(“Order”, null, null, null, null, null, null, null);

List orderList = new ArrayList();

while (cursor.moveToNext()) {

Order order = new Order();

order.setId(cursor.getInt(cursor.getColumnIndex(“_id”)));

order.setName(cursor.getString(cursor.getColumnIndex(“name”)));

order.setPrice(cursor.getFloat(cursor.getColumnIndex(“price”)));

orderList.add(order);

}

“`

5. 數(shù)據(jù)庫(kù)升級(jí)

當(dāng)數(shù)據(jù)庫(kù)需要升級(jí)時(shí),需要對(duì)新增和刪除的表和列進(jìn)行相應(yīng)的處理,可以通過繼承DbUpgrade來實(shí)現(xiàn)。

“`

public class MyAppDbUpgrade extends DbUpgrade {

public MyAppDbUpgrade(int oldVersion, int newVersion) {

super(oldVersion, newVersion);

}

@Override

public void onUpgrade(SQLiteDatabase db) {

if (oldVersion == 1 && newVersion == 2) {

db.execSQL(“ALTER TABLE Order ADD COLUMN description TEXT”);

}

}

}

“`

這段代碼實(shí)現(xiàn)了數(shù)據(jù)庫(kù)從版本1升級(jí)到版本2時(shí),給Order表添加description字段。

三、優(yōu)點(diǎn)

1. 代碼復(fù)用性高,可以減少冗余代碼,避免代碼重復(fù);

2. 操作簡(jiǎn)單,使用方法簡(jiǎn)潔明了,規(guī)范化了數(shù)據(jù)庫(kù)的操作流程;

3. 可以有效的避免Sql注入等攻擊問題,提高數(shù)據(jù)的安全性;

4. 封裝類本身可以支持多線程操作,避免多線程同步問題;

5. 支持多個(gè)表和多個(gè)升級(jí)操作,可以實(shí)現(xiàn)更復(fù)雜的數(shù)據(jù)庫(kù)操作。

四、

相關(guān)問題拓展閱讀:

  • android開發(fā) 數(shù)據(jù)庫(kù)的使用

android開發(fā) 數(shù)據(jù)庫(kù)的使用

SQLite是輕量級(jí)嵌入式數(shù)據(jù)庫(kù)引擎,它支持 SQL 語(yǔ)言,并且只利用很少的內(nèi)存就有很好的性能。此外它還是開源的,任何人都可以使用它。許多開源項(xiàng)目((Mozilla, PHP, Python)都使用了 SQLite,SQLite 由以下幾個(gè)組件組成:SQL 編譯器、內(nèi)核、后端以及附件。SQLite 通過利用虛擬機(jī)和虛擬數(shù)據(jù)庫(kù)引擎(VDBE),使調(diào)試、修改和擴(kuò)展 SQLite 的內(nèi)核變得更加方便。

特點(diǎn):

面向資源有限的設(shè)備, 沒有服務(wù)器進(jìn)程, 所有數(shù)據(jù)存放在同一文件中跨平臺(tái),可自由復(fù)制。

SQLite 基本上符合 SQL-92 標(biāo)準(zhǔn),和其他的主要 SQL 數(shù)據(jù)庫(kù)沒什么區(qū)別。它的優(yōu)點(diǎn)就是高效,Android 運(yùn)行時(shí)環(huán)境包含了完整的 SQLite。

SQLite 和其他數(shù)據(jù)庫(kù)更大的不同就是對(duì)數(shù)據(jù)類型的支持,創(chuàng)建一個(gè)表時(shí),可以在 CREATE TABLE 語(yǔ)句中指定某列的數(shù)據(jù)類型,但是你可以把任何數(shù)據(jù)類型放入任何列中。當(dāng)某個(gè)值插入數(shù)據(jù)庫(kù)時(shí),SQLite 將檢查它的類型。如果該類型與關(guān)聯(lián)的列不匹配,則 SQLite 會(huì)嘗試將該值轉(zhuǎn)換成該列的類型。如果不能轉(zhuǎn)換,則該值將作為其本身具有的類型存儲(chǔ)。比如可以把一個(gè)字符串(String)放入 INTEGER 列。SQLite 稱這為“弱類型”(manifest typing.)。 此外,SQLite 不支持一些標(biāo)準(zhǔn)的 SQL 功能,特別是外鍵約束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FULL OUTER JOIN, 還有一些 ALTER TABLE 功能。 除了上述功能外,SQLite 是一個(gè)完整的 SQL 系統(tǒng),擁有完整的觸發(fā)器,交易等等。

Android 集成了 SQLite 數(shù)據(jù)庫(kù) Android 在運(yùn)行時(shí)(run-time)集成了 SQLite,所以每個(gè) Android 應(yīng)用程序都可以使用 SQLite 數(shù)據(jù)庫(kù)。

對(duì)于熟悉 SQL 的開發(fā)人員來時(shí),在 Android 開發(fā)中使用 SQLite 相當(dāng)簡(jiǎn)單。但是,由于 JDBC 會(huì)消耗太多的系統(tǒng)資源,所以 JDBC 對(duì)于手機(jī)這種內(nèi)存受限設(shè)備來說并不合適。因此,Android 提供了一些新的 API 來使用 SQLite 數(shù)據(jù)庫(kù),Android 開發(fā)中,程序員需要學(xué)使用這些 API。

數(shù)據(jù)庫(kù)存儲(chǔ)在 data//databases/ 下。 Android 開發(fā)中使用 SQLite 數(shù)據(jù)庫(kù) Activites 可以通過 Content Provider 或者 Service 訪問一個(gè)數(shù)據(jù)庫(kù)。

下面會(huì)詳細(xì)講解如果創(chuàng)建數(shù)據(jù)庫(kù),添加數(shù)據(jù)和查詢數(shù)據(jù)庫(kù)。 創(chuàng)建數(shù)據(jù)庫(kù) Android 不自動(dòng)提供數(shù)據(jù)庫(kù)。在 Android 應(yīng)用程序中使用 SQLite,必須自己創(chuàng)建數(shù)據(jù)庫(kù),然后創(chuàng)建表、索引,填充數(shù)據(jù)。

Android 提供了 SQLiteOpenHelper 幫助你創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),你只要繼承 SQLiteOpenHelper 類,就可以輕松的創(chuàng)建數(shù)據(jù)庫(kù)。SQLiteOpenHelper 類根據(jù)開發(fā)應(yīng)用程序的需要,封裝了創(chuàng)建和更新數(shù)據(jù)庫(kù)使用的邏輯。

SQLiteOpenHelper 的子類,至少需要實(shí)現(xiàn)三個(gè)方法:

1 構(gòu)造函數(shù),調(diào)用父類 SQLiteOpenHelper 的構(gòu)造函數(shù)。這個(gè)方法需要四個(gè)參數(shù):上下文環(huán)境(例如,一個(gè) Activity),數(shù)據(jù)庫(kù)名字,一個(gè)可選的游標(biāo)工廠(通常是 Null),一個(gè)代表你正在使用的數(shù)據(jù)庫(kù)模型版本的整數(shù)。

2 onCreate()方法,它需要一個(gè) SQLiteDatabase 對(duì)象作為參數(shù),根據(jù)需要對(duì)這個(gè)對(duì)象填充表和初始化數(shù)據(jù)。

3 onUpgrage() 方法,它需要三個(gè)參數(shù),一個(gè) SQLiteDatabase 對(duì)象,一個(gè)舊的版本號(hào)和一個(gè)新的版本號(hào),這樣你就可以清楚如何把一個(gè)數(shù)據(jù)庫(kù)從舊的模型轉(zhuǎn)變到新的模型。

android數(shù)據(jù)庫(kù)操作封裝類的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于android數(shù)據(jù)庫(kù)操作封裝類,Android數(shù)據(jù)庫(kù)操作封裝類:更好的開發(fā)體驗(yàn),android開發(fā) 數(shù)據(jù)庫(kù)的使用的信息別忘了在本站進(jìn)行查找喔。

創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。


分享文章:Android數(shù)據(jù)庫(kù)操作封裝類:更好的開發(fā)體驗(yàn)(android數(shù)據(jù)庫(kù)操作封裝類)
鏈接地址:http://m.5511xx.com/article/dpodded.html