SQLite就是轻量级数据库。
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase("user.db",null);
// path factory
/*
path:指定数据库文件
factory:用于实例化一个游标
*/
编写继承SQLiteOpenHelper的子类,而且要重写onCreate()和onUpdate()方法。
public class DatasDB extends SQLiteOpenHelper {
private static String DB_NAME = "healthy_db";// 数据库名称
private static int DB_VERSION = 1;// 数据库版本号
public DatasDB(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
//主键自增,日期,年,月,日,步数,热量,里程
String stepRecorded = "create table step (_id integer primary key autoincrement ," +
" date varchar(20),year integer,month integer,day integer,steps integer,hot varchar(20),length varchar(20))";
//主键自增,类型,名称,开始年,月,日,结束年,月,日,设置时间long值,提示时间long值,提示时,提示分提示时间文字,排序 ,增加
String sportTable = "create table plans (_id integer primary key autoincrement ,"+
"sport_type integer,sport_name varchar(20),start_year integer,start_month integer,start_day integer,"
+"stop_year integer,stop_month integer,stop_day integer,set_time integer,hint_time integer,hint_hour integer, hint_minute integer,hint_str varchar(20),add_24_hour integer,"
+"number_values"+")";
//执行SQL语句
db.execSQL(stepRecorded);
db.execSQL(sportTable);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
SQLiteDatabase 类提供了 insert(),update(),delete(),query()方法。
insert(String table,String nullColumnHack,ContentValues values);
/*
table: 表名
nullColumnHack:可选的,用于指定当values参数为空的,将哪个字段设置为null。如果values不为空,该参数可以设置为null
values: 用于指定具体的字段值。它相当于Map集合,也是通过键值对的形式存储值的。
*/
ContentValues:https://www.cnblogs.com/rayray/p/3410204.html
update(String table, ContentValues values,String whereClause,String[] whereArgs);
/*
table 表明
values 指定更新的字段和对应的字段值
whereClause 条件表达式 用于指定条件的语句 可以使用占位符(?)
whereArgs 当条件表达式包含占位符时,该参数可以指定占位参数的值。如果没有占位符,可以是null。
*/
delete(String table,String whereClause,String[] whereArgs);
/*
参数同上
*/
query方法返回的是Cursor对象,Cursor对象是数据指针的集合。