创建和升级数据库
创建数据库
- 写一个类MyDatabase继承SQLiteOpenHelper类
- 在MyDatabase类中重写方法和写一个构造方法
- 写一个SQL的建表语句并设置为静态字符串常量
- 在MyDatabase类中的onCreate()方法中执行建表语句
- 在MainActivity中创建一个MyDatabase类的实例
- 通过MyDatabase类的实例调用getWritableDatabase()方法创建数据库
MyDatabase类代码如下:
public class MyDatabase extends SQLiteOpenHelper {
public static final String CREATE_STUDENT = "create table Student(" +
" id integer primary key autoincrement," +
" name text," +
" age integer," +
" sex text )";
public MyDatabase(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_STUDENT);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
MainActivity代码如下:
public class MainActivity extends AppCompatActivity {
private MyDatabase myDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button create_database = findViewById(R.id.create_database);
// 调用MyDatabase的构造方法
//第一个参数是Context,第二个参数是数据库名,第三个参数是允许我们在查询数据的时候返回一个自定义的Cursor
myDatabase = new MyDatabase(this, "School.db", null, 1);
create_database.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myDatabase.getWritableDatabase();
}
});
}
}
以上的代码的意思就是点击按钮创建数据库
现在数据库创建好了,我们来查询一下:
使用adb命令前应先配置环境变量,adb命令在SDK目录下platform-tools中,如果不想配置,就在这个目录下打开命令提示符。
- 打开命令提示符,输入adb shell
- cd data/data/包名/databases
- ls查看文件
注意这个包名
如上图所示,包名这里填com.example.lenovo.text2,你电脑这个位置显示什么,包名的位置就填你电脑这个位置显示的包的结构。
执行效果图:
如上图所示,数据库就创建好了,创建了一个为School.db的数据库文件,现在我们进入数据库,并查看数据库中的表。以下给出了常用的命令:
- sqlite3 数据库名 ——— 进入数据库
- .table ——— 查看数据库中的表
- .schema ——— 查看数据库中的表的类型
- select * from 表名; ——— 查看表中的数据,注意末尾的分号不能少
效果图如下:
首先我们使用sqlite3命令进入了School.db数据库,在使用.table查看这个数据库下的表,此处便可以看到Student表,这是我们创建好的。
数据库升级,添加一张Person表
更改MyDatabase类的内容如下:
public class MyDatabase extends SQLiteOpenHelp