SQLite

定义:

SQLite就是轻量级数据库。

创建数据库:

1.利用openOrCreateDatabase方法

SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase("user.db",null);
                                                      //  path   factory   
/*
  path:指定数据库文件
  factory:用于实例化一个游标
*/

2.继承SQLiteOpenHelper类

 编写继承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():

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():

  

update(String table, ContentValues values,String whereClause,String[] whereArgs);
/*
  table 表明
  values 指定更新的字段和对应的字段值
  whereClause 条件表达式 用于指定条件的语句 可以使用占位符(?)
  whereArgs  当条件表达式包含占位符时,该参数可以指定占位参数的值。如果没有占位符,可以是null。
*/

  delete(): 

delete(String table,String whereClause,String[] whereArgs);
/*
  参数同上
*/

  query(): 

query方法返回的是Cursor对象,Cursor对象是数据指针的集合。

点赞