第五章 以資料為中心—資料存取(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)可能也會用到,這是當開啟資料庫時的回呼函數。