今天学习了如何建立Sqlite数据库
MainActivity
package com.example.a92133.databasedemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DatabaseHelper helper = new DatabaseHelper(this);
helper.getWritableDatabase();
}
}
DatabaseHelper
package com.example.a92133.databasedemo;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
/**
* Created by 92133 on 2020/4/18.
*/
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String TAG ="DatabaseHelper";
/**
* @ context 上下文
* @ name 数据库名称
* @ factory 游标工厂
* @ version 版本号
*/
public DatabaseHelper(Context context) {
super(context, Constants.DATABASE_NAME, null, Constants.VERSION_CODE);
}
/**
* 第一次创建数据库的时候被调用
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
//创建时的回调
Log.d(TAG,"升级数据库...");
//创建字段
//sql create table_name(_id integer,name varchar,age integer,salary integer);
String sql = "create table "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer,salary integer)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//升级数据库时的回调
Log.d(TAG, "升级数据库...");
String sql;
switch (oldVersion){
case 1:
//添加address和phone字段
sql = "alter table"+Constants.TABLE_NAME+" add phone integer,address varchar";
db.execSQL(sql);
break;
case 2:
//添加address字段
sql = "alter table "+Constants.TABLE_NAME+" add address varchar";
db.execSQL(sql);
break;
case 3:
//sql:alter table table_name add phone integer;
break;
}
}
}
Constants
package com.example.a92133.databasedemo;
/**
* Created by 92133 on 2020/4/18.
*/
public class Constants {
public static final String DATABASE_NAME ="sunofbeaches.db";
public static final int VERSION_CODE =3;
public static final String TABLE_NAME = "employee";
}
Dao
Dao层的增删改查还未实现
package com.example.a92133.databasedemo;
import android.content.Context;
/**
* Created by 92133 on 2020/4/18.
*/
public class Dao {
private final DatabaseHelper helper;
public Dao(Context context){
//创建数据库
helper = new DatabaseHelper(context);
}
public void insert(){
}
public void delete(){
}
public void update(){
}
public void query(){
}
}
查看是否创建成功步骤
1 在模拟机或手机上运行程序(注意:若在手机上查看,需要检查手机上是否有sqlite3程序)
2 首先我们要进入到cmd下,同时要保证你的模拟器是打开着的,然后输入以下命令
adb shell
可以通过ls查看adb下面都有那些文件,
输入cd data/data进入到data目录下
在输入ls命令查看该目下有些什么文件,在这个data目录下的文件就是你所安装的应用程序的包的命名
如 输入cd com.vodone.caibo的命令进入到你要去的应用程序的包中,注意这里cd后面要写的包名是你要进入的应用程序的包名
进入之后再输入 cd databases命令进入到databases下
然后可以输入ls查看有哪些东东,如果你有创建数据库的话 可以在该目录下看到相关的xxx.db文件
在输入sqlite3 xxx.db命令之后你就进入到你创建的数据库中
进去之后你可以输入
.table命令用于查看有那些表
.schema命令查看你创建的表的结构
至于查询的语句和一般我们使用的数据库的查询是一样的,这里就不说了~(__) 嘻嘻……
这样你就可以看到你的数据库里都有一些什么了
注意用手机测试的时候
结果提示了adb opendir failed ,permission denied
和linux一样,这时候su回车
然后在手机上同意root就行了(记得之前要开放手机的root权限)