第五章 以資料為中心—資料存取(4),第五章存取

來源:互聯網
上載者:User

第五章 以資料為中心—資料存取(4),第五章存取
5.2 通用的資料操作方式—資料庫

說到資料的存取,資料庫肯定是一個常用的解決方案。Android中也有它自己的資料庫,下面我們來看看Android中的資料庫與一般的資料庫有什麼不一樣的地方。

5.2.1SQLite資料庫介紹

目前在Android系統中整合的是SQLite3版本,它支援SQL語句,它是一個輕量級的嵌入式資料庫。SQLite支援NULL、INTEGER、REAL、TEXT和BLOB資料類型,不支援待用資料類型,而是使用列關係。可以把SQLite資料庫近似看成是一種無資料類型的資料庫,你可以把任何類型的資料存放在非Integer類型的主鍵之外的其他欄位上去(欄位的長度也是沒有限度的)。不過建議一定要在編寫SQL語句的時候,按照標準的SQL文法,因為這樣在別人看你的代碼時候,便於更好的理解。

SQLite的官方網站是htt://www.sqlite.org/,登陸該網站可以瞭解更多的關於SQLite的資訊。

在Android開發中,一個SQLiteDatabase的執行個體代表了一個SQLite 的資料庫,通過SQLiteDatabase 執行個體的一些方法,我們可以執行SQL 陳述式,對資料庫進行增、刪、查、改的操作。需要注意的是,資料庫對於一個應用來說是私人的,並且在一個應用當中,資料庫的名字也是惟一的。下面的章節我們會詳細說明資料庫的操作。

 

經驗分享:

資料庫儲存的位置在data/data/<專案檔夾>/databases/。有的時候我們可能需要查看資料庫中的內容,這個時候我們可以將其拷貝出來,然後使用資料庫工具進行查看。

另外,檔案做為一個儲存的載體,在大部分時候是有效,但在某些情況下,檔案儲存體會有問題,需要特別注意:

1)如果多線程資料訪問是相關的。

2)如果應用程式處理可能變化的複雜資料結構。

 

5.2.2建立並開啟資料庫

我們要對資料庫進行操作,那麼首先要開啟一個資料庫,這裡要用到一個類:android.database.sqlite.SQLiteOpenHelper。它封裝了如何開啟一個資料庫,其中當然也包含如果資料庫不存在就建立這樣的邏輯。

// import略

public class DBOpenHelper extends SQLiteOpenHelper { 

 

    public static final String DATABASE_NAME = "myDataBaseName"; 

    public static final int DATABASE_VERSION = 1 ; 

    public static final String TABLE_NAME = "myTableName"; 

 

    public DBOpenHelper(Context context) {

        super (context, DATABASE_NAME, null , DATABASE_VERSION); 

    }

    @Override 

           public void onCreate(SQLiteDatabase db) { 

        db.execSQL("CREATE TABLE "+ TABLE_NAME 

        + " (_id integer primary key autoincrement, name text);"); 

    }

    @Override 

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

        db.execSQL("DROP TABLE IF EXISTS notes"); 

        onCreate(db);

    }

}

 --------------------------------------------程式員賺錢不易 一定要學會理財平安陸金所 隸屬於平安集團的p2p平台年投資報酬率7%-9% 是替代銀行理財的首選個人經驗 推薦投資安鑫或者有擔保的彩虹項目不要投資安e 那個幾乎無法轉讓 想提前提現非常困難網站連結 http://affiliate.lufax.com/action/36XBU首次投資1000元即可額外賺幾百元 不賺白不賺--------------------------------------------

下面對上述代碼做一些說明。

onCreate(SQLiteDatabase):在資料庫第一次產生的時候會調用這個方法,一般我們在這個方法裡邊產生資料庫表。

onUpgrade(SQLiteDatabase,int, int) :當資料庫需要升級的時候,Android 系統會主動的調用這個方法。一般我們在這個方法裡邊刪除資料表,並建立新的資料表,當然是否還需要做其他的操作,完全取決於應用的需求。

除了上述兩個方法以外,還有onOpen(SQLiteDatabase)可能也會用到,這是當開啟資料庫時的回呼函數。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.