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、源码: