close

上篇[Android] 3-6 SQLite基礎 - 基礎API介紹了用基本API的方法來對SQLite做處理

在看這篇之前請先讀過前篇, 這篇簡單介紹

a. 直接使用SQLite的語法來作資料庫處理

b. 不在內建DB位置下創建和開啟資料庫的方法 

 

1. 首先介紹創建DB的方法, 用openOrCreateDatabase來創建DB

這邊的例子是要在sdcard的位置下創建名叫MyDB的資料庫, 程式碼如下

  SQLiteDatabase db = this.openOrCreateDatabase
    ("/sdcard/MyDB", SQLiteDatabase.OPEN_READWRITE, null);

這個方法也可以將自己預先創好的DB放到相對應位置

接著在來開啟它

完成這段程式碼時可以先編譯執行

01.png

 

2. 這邊要在Manifest開啟android.permission.WRITE_EXTERNAL_STORAGE的權限,

因為Android在使用SQLite的時候會創建journal檔案, 所以要用WRITE權限而不是READ

02.png

 

3. 接著就可以利用DDMS來查看sdcard的位置,

可以看到右邊的有一條路徑, 指的是Mapping過去的位置

實際上的檔案要在右邊的路徑上找

03.png

 

4. 到了相對應的位置看見步驟1執行後產生的MyDB

04.png

 

5. 有了資料庫之後, 需要建立Table, 這邊的建立方法就是利用SQLite的語法

然後用execSQL去執行, 程式碼如下:

  final String create = "CREATE TABLE IF NOT EXISTS "
    + "MyTable" + " ("
    + "name"  + " TEXT NOT NULL, "
    + "id" + " INTEGER PRIMARY KEY,"
    + "age" + " INTEGER"
    + ")";
  db.execSQL(create);

05.png

 

6. 執行完後可以用sqliteman來查看DB來確認剛建立的table

06.png

 

7. 接著介紹新增資料的方法, 也是利用execSQL來執行, 程式碼如下:

  db.execSQL("INSERT INTO MyTable (name, id, age)" +
       " VALUES ('P1', 1, 10);");

07.png

 

8. 執行完後可以用sqliteman來查看DB來確認剛新增的資料

08.png

 

9. 接著介紹更新資料的方法, 也是利用execSQL來執行, 程式碼如下:

  db.execSQL("UPDATE MyTable" +
       " SET name = 'p5'" +
       " WHERE id = 1;");

09.png

 

10. 執行完後可以用sqliteman來查看DB來確認剛更新的資料

10.png

 

11. 接著介紹刪除資料的方法, 也是利用execSQL來執行, 程式碼如下:

  db.execSQL("DELETE FROM MyTable where name = 'p5';");

11.png

 

12. 執行完後可以用sqliteman來查看DB來確認剛刪除的資料

12.png

 

13. 接著連續創建10筆資料, 程式碼如下

  for(int i = 0; i < 10; i++){
   db.execSQL("INSERT INTO MyTable (name, id, age)" +
        " VALUES ('test', " + i + ", " + i * 10 + ");");
  }

13.png

 

14. 執行完後可以用sqliteman來查看DB來確認剛創建的資料

14.png

 

15. 接著介紹查詢的方法, 這邊使用rawQuery("SQLite的語法", null)來執行

和之前API的版本差異就在此, 用rawQuery則可以直接套用SQLite的語法

熟悉SQLite就可以藉此設定查詢方式, 程式碼如下 :

  Cursor c = db.rawQuery("SELECT * FROM MyTable", null);

15.png

 

16. 把查詢到的資料用Log顯示出來, 程式碼如下:

     int row = c.getCount();
     int col = c.getColumnCount();
     c.moveToFirst();
     
  for (int i = 0; i < row; i++) {
   for(int j = 0; j < col; j++){
    Log.d("MainActivity", c.getString(j));
   }
   c.moveToNext();
  }
  c.close();

16.png

 

17. 最後可以在Log上看到剛查詢到的資料

17.png

 

這篇簡單介紹用SQLite的語法直接使用方式

這樣作出的程式碼會比呼叫套件好的API更容易修改查詢

而Android裡面SQLite的部分execptions並不是強制要求

此篇為了清楚表達執行語法所以沒有特別舉例加的位置

下一篇舉例最簡單的用法[Android] 3-8 SQLite基礎 - 基礎Exception

 

arrow
arrow
    文章標籤
    Android SQLite
    全站熱搜

    RX1226 發表在 痞客邦 留言(0) 人氣()