SQLite是Android Studio内置的一款轻量级的关系型数据库,支持标准的SQL语法,可以很快上手。
Android Studio专门提供了一个SQLiteOpenHelper帮助类来管理数据库。SQLiteOpenHelper是一个抽象类,我们使用的时候需要创建一个新的类去继承它。SQLiteOpenHelper有两个抽象方法onCreate()和onUpgrade(),继承它的类中需要重写这两个方法,然后在这两个方法中实现数据库的创建和升级。
SQLiteOpenHelper有两个重要的实例方法:getReadableDatabase()和getWritableDatabase()
相同点:都可以创建或打开一个现有的数据库,并返回一个可对数据库进行读写操作的对象
不同点:当数据库不可写入时,getReadableDatabase()返回的对象将以只读的方式打开数据库,getWritableDatabase()会出现异常
首先,在自己的工程中创建一个新的类MyDatabaseHelper并继承SQLiteOpenHelper【新的类的名字可以自己定义】
然后写一个构造函数。SQLiteOpenHelper有两个构造函数可重写,一般使用参数少的那个。
public class MyDatabaseHelper extends SQLiteOpenHelper {
private Context mContext;
public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int version){
super(context,name,factory,version);
mContext=context;
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
接着我们写一个创建表的SQL语句,这里我创建了一个学生管理表student,属性有学生学号和姓名。text表示文本类型,primary key表示是主键,autoincrement表示是自增长。
重点就是要使用SQLiteDatabase的execSQL() 方法执行建表语句
public class MyDatabaseHelper extends SQLiteOpenHelper {
public static final String CREATE_STU="create table student("
+"id integer primary key autoincrement,"
+"stu_id text,"
+"name text)";
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_STU);
}
……
}
activity_main.xml的代码很简单,就是放置一个Button来创建数据库
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/create_database"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Create database" />
</LinearLayout>
在MainActivity中,我们需要构建一个MyDatabaseHelper对象(这个类是继承了SQLiteOpenHelper的那个类),指定数据库的名字为StudentManager.db,再给Button一个点击事件,当点击Button时,调用getWritableDatabase()方法创建数据库和表
public class MainActivity extends AppCompatActivity {
private MyDatabaseHelper dbHelpr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelpr=new MyDatabaseHelper(this,"StudentManager.db",null,1);
Button createDatabase=(Button)findViewById(R.id.create_database);
createDatabase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dbHelpr.getWritableDatabase();
}
});
}
}
运行模拟器后
在创建完数据库和数据表后,如何查看呢?
第一可以使用SQLiteStudio(图形化界面),第二使用adb shell(Android Studio自带的调试工具)查看,这里我先使用了adb shell来查看。
这里注意!!使用adb需要root权限 Android6.0以上的模拟器是没有root权限的!!所以这里我使用了6.0的模拟器(简单粗暴)
adb存放在sdk的platform-tools目录下,我们需要把它的路径配置到环境变量中。我的路径是D:\Android\SDK\platform-tools
【右击计算机或此电脑—属性—高级属性—环境变量】
【下面的操作一定要保证模拟器全程都在运行中】
进入cmd命令行界面,输入adb shell。#表示是超级管理员,$表示是普遍管理员。普遍管理员需要输入su命令切换成超级管理员。
数据库文件都会放在/data/data/<包名>/databases/下面,所以要cd进入
输入sqlite3 <数据库名称>可以打开数据库
输入.table即可查看已创建的表
以上就是最最基础的SQLite数据库的创建和查看啦!!