新聞中心
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


咨詢
建站咨詢
