本文是以Android Studio为开发工具,<<第一行代码Anroid第2版>> 为学习指导书籍的学习记录
6.4 SQLite数据
SQLite用于存储大量复杂的关系型数据,是内置在Android系统的一种轻量级的关系型数据库,它有速度快,占用资源少的特点。
6.4.1 创建数据库
Android 有一个QLiteOpenHelper帮助类,借助这个类可以对数据库进行创建和升级
SQLiteOpenHelper是一个抽象类
- 有两个抽象方法(实现创建,升级数据库的逻辑)为onCreate(),onUpgrade();
- 有两个实例方法(创建或打开一个现有的数据库,返回一个可以对数据库进行读写操作的对象)为getReadableDatabase(),getWritableDatabase()
要实现的内容:
创建一个名为BookStore.db的数据库,在库中新建一张Book表,表中有id(主键)、作者、价格、页数等列;
新建一个DatabaseTest项目
新建一个类(MyDatabaseHelper)代码如下:
package com.zyf.android.databasetest;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
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)";
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) {
db.execSQL(CREATE_BOOK);
Toast.makeText(mContext,"create succeeded", Toast.LENGTH_SHORT).show();
}
//抽象方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
img1
修改activity_main.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/create_database"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Create datebase(创建数据库)"/>
</LinearLayout>
img 2
修改MainActivity类的代码如下:
package com.zyf.android.databasetest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private MyDatabaseHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper = new MyDatabaseHelper(this,"BookStore.db",null,1);
Button createDatabase = (Button) findViewById(R.id.create_database);
createDatabase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dbHelper.getWritableDatabase();
}
});
}
}
img 3
运行代码,点击按钮,提示成功创建数据库
img 4
查看数据库的文件
可以用adb这个Android SDK中自带的工具,环境的配置安装这里就不说了。
在Terminal终端命令行下输入adb shell
img 5
进入目录cd /data/data/com.zyf.android.databasetest/databases下面
img 6
用ls命令查看目录下的文件
img 7
借助sqlite命令打开数据库,也就是输入sqlite3 BookStore.db命令
img 8
输入.table 查看表结构
img 9
输入.schema可以看建表的语句
img 10
输入.exit 或.quit退出客户端
img 11
写在最后:
后续更新内容(关注持续更新)
2、升级数据库
3、添加数据库
4、更新数据库
5、删除数据库
6、查询数据
7、使用SQL操作数据库
敬请期侍!!!互勉!!
个人github博客地址:
zhangyongfeng"s blogs