安卓開發中的數據庫技術——SQLite

搞安卓的人必須要知道安卓系統是內置了數據庫的——SQlite,它是一款輕量級的關係型數據庫,關係數據庫:是建立在關係模型基礎上的數據庫,藉助於集合代數等數學概念和方法來處理數據庫中的數據。現實世界中的各種實體以及實體之間的各種聯繫均用關係模型來表示。關係模型就是指二維表格模型,因而一個關係型數據庫就是由二維表及其之間的聯繫組成的一個數據組織。它的運算速度非常快,佔用資源少,只需幾百KB就夠了。SQLite能支持SQL語法,所以對於學過SQL的人來說這很容易上手。話不多說,直奔主題!
第一步,創建數據庫
android 中提供了一個SQLiteOpenHelper類,藉助這個類我們能非常方便的對數據庫進行創建和升級。但是這個類是abstract的,也就是說含有抽象方法的類稱爲抽象類,它不能生成對象。雖然它不能實例化對象,但是可以聲明引用,所以我們要建立一個自己的類去繼承它。SQLiteOpenHelper中有兩個重要的方法:oncreate()和onupgade()。主要用來創建和升級數據庫的邏輯。SQLiteOpenHelper類中還有兩個實例方法getReadableDaabase()h和getWriteableDatabase()。他們都能打開或創建一個數據庫,並返回一個可操作的對象。
繼承SQLiteOpenHelper類要重寫它的構造方法,android提供了兩個可選的構造方法,一般選擇參數少一點的那個就好了。這裏寫圖片描述
第一個是Context,指的是上下文,想必大家都懂。第二個參數是數據庫的名字,第三個參數表示允許查詢數據是返回一個自定義的cusor,一般都傳入null,第四個是版本號(等下要用到,再說),可用來對數據庫升級。實例化後創建的數據庫文件會放在/data/data/”你的包名”/databases/目錄下。創建數據庫後我們一般還會建立一個表(不然我們建立數據庫幹嘛?不就是來存數據嗎?)建表語句要在oncreate()中執行所以我們在oncreate()中添加這麼一句:這裏寫圖片描述  只要你對SQL的建表語句有一點了解都會知道上面這句話的含義吧?它的功能是建立一個表名爲Book,列名分別爲id,author,price,pages,name的一張表。其中id integer primary key autoincrement是說id爲主鍵並且自動增長。現在在主活動的佈局文件中加一個button,<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/create_database"
android:text="create_database"/>
佈局文件很簡單,知識簡單的加了一個按鈕,然後修改MainActivity中的x代碼來實現這個按鈕的邏輯。這裏寫圖片描述這表示創建數據庫了,但是我們要怎麼判斷已經建立好了呢?我們可以用AS自帶的調試工具adb,他能直接對模擬機或手機進行調試操作,要想使用adb的話要先進行環境配置,這個大家可以去網上查。使用adb的方法,在控制檯輸入依次輸入adb shell–>/cd /data/data/com.example.包名/databases/->夠看到你建立的數據庫了。第二步, 升級數據庫。如果還要建立一張表,那就需要升級數據庫只要在之前的構造函數中將第四個參數改爲比1大的數即可以了,這就表示升級數據庫了。但是還要注意一個問題,由於之前已經在oncreate()中建立過Book這張表了,現在新增一張表的話,之前的oncreate()現在就不會執行,所以也就會導致不能建表,所以我們要在onuograde()中加:這裏寫圖片描述這兩句:這表示如果原來存在這兩張表的話就現刪除,然後在調用oncreate()重新創建。## 第三步,添加數據。 ##添加數據很簡單,由於getWriteabledatabase會返回一個sqlitedatabase對象,所以我們就住這個對象就能對數據庫進行數據庫操作了。這裏寫圖片描述添加數據用insert()方法,它接收3哥參數,第一個是表名,第二個參數用於在未至定添加數據的情況下給某些可爲控的列自動賦值NULL,第三個參數爲一個contentvalue 對象,我們要把需要寫入的數據裝在這哥contentvalue 的put()方法中。數據裝入後我們最後還是要取出來用的,這時候我們就要用到一個比較麻煩的查詢方法,SQLiteDatabase中提供了一個query()方法用於對數據進行查詢,黛娜這個方法的額參數非常複雜,最短的重載方法也要傳入7哥參數,這裏我們用最簡單的查詢————全部查詢,其實那些參數主要是設置查詢條件的,本次我們就不深入研究了。貼下代碼:這裏寫圖片描述注意TextView的setText()和append()的區別。這裏寫圖片描述我們來看下程序運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章