SQLITE是一个轻量级 嵌入式的关系式的数据库,他遵守ACID的关联式数据库管理系统,主要是针对嵌入式设备设计的数据库 占用的空间非常少。
其实有四个类(接口)贯穿始终
Sqlite.SQLiteDatabase完成数据的CRUD操作已经事务处理。
SQLITEOpenHelper 定义数据库的创建及更新操作类
Curse 保存所有的查询结果
ContentValue 对传递的数值进行封装
数据库操作类:SQLiteDatabase
在Android系统之中,一个android.database.sqlite.SQLiteDatabase类的实例都代表了一个SQLite数据库的操作,通过SQLiteDatabase类可以执行SQL语句,以完成对数据表的增加、修改、删除、查询等操作,在此类之中定义了基本的数据库执行SQL语句的操作方法以及一些操作的模式常量。
数据库操作辅助类:SQLiteOpenHelper
SQLiteDatabase类本身只是一个数据库的操作类,但是如果要想进行数据库的操作,还需要一个android.database.sqlite.SQLiteOpenHelper类帮助下才可以取得进行,但是,SQLiteOpenHelper类是一个抽象类,所以要使用的时候需要定义其子类,并且在子类中要覆写相应的抽象方法。
SQLiteOpenHelper类中定义的回调方法
在SQLiteOpenHelper类中定义了三个回调方法,这三个方法的作用如下:
onCreate():在第一次使用数据库的时候会调用此方法生成相应的数据库表,但是此方法并不是说是在实例化SQLiteOpenHelper类的对象时调用,而是通过对象调用了getReadableDatabase()或getWritableDatabase()方法时才会调用;
onUpgrade():当数据库需要进行升级的时候,会调用此方法,一般可以在此方法之中将数据表删除,并且在删除表之后往往会调用onCreate()方法以重新创建新的数据表;
open():当数据库打开的时候会调用此方法,但是一般情况下用户不需要覆写此方法。
来一个小DEMO玩玩
SQLiteOpenHelper类
package com.example.sqlitesave; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DbOpenHelp extends SQLiteOpenHelper { private static final String DATABASENAME = "jdk.db" ; // 数据库名称 private static final int DATABASEVERSION = 1 ; // 数据库名称 private static final String TABLENAME = "mytab" ; // 数据表名称 public DbOpenHelp(Context context) { super(context, DATABASENAME, null, DATABASEVERSION);// 调用父类构造 } @Override public void onCreate(SQLiteDatabase db) {// 创建数据表 String sql = "CREATE TABLE " + TABLENAME + " (" + "id INTEGER PRIMARY KEY ," + "name VARCHAR(50) NOT NULL ," + "birthday DATE NOT NULL)";// SQL语句 db.execSQL(sql) ; // 执行SQL语句 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = "DROP TABLE IF EXISTS " + TABLENAME ; // SQL语句 db.execSQL(sql); // 执行SQL语句 this.onCreate(db); // 创建表 } }
package com.example.sqlitesave; import android.app.Activity; import android.os.Bundle; public class SQLiteDemo extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); DbOpenHelp help=new DbOpenHelp(this); help.getWritableDatabase(); } }验证的时候到了 只要到 data/data 然后找到你的APP文件里找找 databases 里面有不有jdk.db