一、使用adb shell功能
- Book表是無法通過File Explorer來看的,所以我們可以使用android SDK自帶的一個工具來進行查看,這個工具就是adb
- 首先我們要把該工具所在的地址配置環境變數中去才可以在dos視窗中直接呼叫,


- 輸入adb shell,進入設備控制臺
- 輸入cd /data/data/com.example.databasetest/databases/,進入到android目錄下
- ls查看檔案夾中有什么
- 里面含有兩個檔案,一個就是我們創建的BookStore.db和一個journal結尾的檔案,這個檔案就是為了讓資料庫能夠支持事務而產生的臨時日志檔案,通常這種檔案的大小都是0
- 使用sqlite3 資料庫名 來打開資料庫,然后輸入.table來查看資料庫中有哪些表,可以看到有兩張表,其中android_metadata表是每個資料庫中都會自動生成的,而另一張Book表就是我們在android app中生成的,
- 輸入.exit或者.quit退出資料庫的編輯,再輸入exite就是退出設備控制臺,
二、升級資料庫
- 我們不能只能創建這一個表就結束了,我們還創建更多的表,所以還是要在MyDatabaseHelper.java中修改函式來實作升級資料庫的功能
package com.example.databasetest;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;
public class MyDatabaseHelper extends SQLiteOpenHelper{
public static final String CREATE_BOOK = "create table Book (" + "id integer primary key autoincrement," + "author text," + "price real,"+ "pages integer," + "name text)";
public static final String CREATE_CATEGORY = "create table Category(" + "id integer primary key autoincrement" + "category_name text" + "category_code integer";
private Context mContext;
public MyDatabaseHelper(Context context,String name,CursorFactory factory,int version) {
super(context,name,factory,version);
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_BOOK);
db.execSQL(CREATE_CATEGORY);
Toast.makeText(mContext ,"Create succeeded",Toast.LENGTH_LONG).show();
}
@Override
public void onUpgrade(SQLiteDatabase db,int oldVersion ,int newVersion) {
db.execSQL("drop table if exists Book");
db.execSQL("drop table if exists Category");
onCreate(db);
}
}
- 相比上一個版本就是增加升級資料庫的SQL陳述句以及執行“升級資料庫”的SQL陳述句,以及修改了升級函式,
- 這個升級函式可以講一下,如果發現已經存在Book和Category表,就會先扔這兩個表,然后再執行onCreate方法,然而如何讓這個函式執行呢?我們就需要修改主活動程式MainActivity.java
dbHelper = new MyDatabaseHelper(this,"BookStore.db",null,2);
- 這里只需要修改一行陳述句就可以,就是第四個引數改為2,代表著資料升版了,那么有人問,如果是第一次創建呢?這無所謂啊,第一次創建,drop陳述句不生效而已,仍然會繼續執行onCreate()函式,
- 我們查看一下adb shell創建成功了沒有

三、添加資料
- 其實android是支持SQL陳述句,但是為了能夠加強互動性,android程式開發即使不用SQL陳述句也可以對資料庫進行“增刪改查”一系列操作的,
getReadableDatabase()和·getWritableDatabase()`方法是可以創建和升級資料庫的,這兩個方法還會回傳一個SQLiteDatabase物件,- 具體如何進行我們下次連載再進行撰寫,
四、原始碼:
- DatabaseTest
- 地址:https://github.com/ruigege66/Android/tree/master/DatabaseTest
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客園:https://www.cnblogs.com/ruigege0000/
- 歡迎關注微信公眾號:傅里葉變換,個人賬號,僅用于技術交流
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/106829.html
標籤:其他
