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

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

新聞中心

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

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

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

一、封裝類的介紹

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

二、使用方法

1. 添加依賴

在Android項目的build.gradle中添加如下依賴:

“`

dependencies {

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

}

“`

2. 初始化

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

“`

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

“`

3. 創(chuàng)建表

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

“`

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)建了一個名為Order的表,包括_id、name、price三個字段,其中_id為自增長的主鍵,其他兩個字段都不能為空。

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

數(shù)據(jù)的增刪改查可以直接調(diào)用封裝類DbManager的相應方法,比如插入一條數(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ù)庫升級

當數(shù)據(jù)庫需要升級時,需要對新增和刪除的表和列進行相應的處理,可以通過繼承DbUpgrade來實現(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”);

}

}

}

“`

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

三、優(yōu)點

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

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

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

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

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

四、

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

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

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

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

特點:

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

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

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

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

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

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

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

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

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

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

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

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

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

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


本文標題:Android數(shù)據(jù)庫操作封裝類:更好的開發(fā)體驗(android數(shù)據(jù)庫操作封裝類)
URL鏈接:http://www.5511xx.com/article/dpodded.html