1、使用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就是退出設備控制檯。
2、升級數據庫
- 咱們不能只能建立這一個表就結束了,咱們還建立更多的表,因此仍是要在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建立成功了沒有
3、添加數據
- 其實android是支持SQL語句,可是爲了可以增強交互性,android程序開發即便不用SQL語句也能夠對數據庫進行「增刪改查」一系列操做的。
getReadableDatabase()
和·getWritableDatabase()`方法是能夠建立和升級數據庫的,這兩個方法還會返回一個SQLiteDatabase對象。
- 具體如何進行咱們下次連載再進行編寫。
4、源碼: