SQLiteOpenHelper抽象类,需要自己定义一个类来继承它
getReadableDatabase() 得到一个可读的数据库,会返回一个SQLiteDatabase对象
getWritableDatabase() 得到一个可读的数据库,会返回一个SQLiteDatabase对象
onCreate(SQLiteDatabase db) //回调函数,当第一次创建数据库时自动调用。一般会添加创建表的操作
onOpen(SQLiteDatabase db) //回调函数,当打开数据库时自动调用
onUpgrade(SQLiteDatabase db, intoldVersion, int newVersion) //回调函数,当更新数据库时自动调用
DatabaseHelpper继承SQLiteOpenHelper必须有构造函数调用父类构造函数
public DatabaseHelpper(Context context,String name, CursorFactory factory, int version)
{
Super(context,name, factory, version);
}
在应用程序的目录下
/data/data/package/databases/目录下会有创建的数据库文件
sqliste3 test_mars_db 进入test_mars_db数据库
命令 sqlite>.schema 显示数据库的模式
向表中插入数据
ContentValues values = new ContentValues();
values.put(“id”, 1);
values.put(“name”, “zhangsan”);
DatabaseHelper dbHelper = newDatabaseHelper(SQLiteActivity.this,”test_mars_db”);
SQLiteDatabase db =dbHelper.getWritableDatabase();
db.insert(“user”, null, values);
表名
更新表数据
ContentValues values = new ContentValues();
values.put(“name”, “zhangsanfeng”);
DatabaseHelper dbHelper = newDatabaseHelper(SQLiteActivity.this,”test_mars_db”);
SQLiteDatabase db =dbHelper.getWritableDatabase();
db.update(“user”, values, “id=?”, newString[]{“1”});
//第一个参数是要更新的表名
//第二个参数是一个ContentValues对象
//第三个参数是where子句
//第四个参数是占位符所对应的值
查询表
DatabaseHelper dbHelper = newDatabaseHelper(SQLiteActivity.this,”test_mars_db”);
SQLiteDatabase db =dbHelper.getReadableDatabase();
Cursor cursor = db.query(“user”, newString[]{“id”, “name”}, “id=?”, new String[]{“1”}, null, null, null);
while(cursor.moveToNext()){
Stringname = cursor.getString(cursor.getColumnIndex(“name”));
}
不通过SQLiteOpenHelper的话。可以通过下面的方式
创建和打开数据库:
SQLiteDatabase db =this.openOrCreateDatabase(“test_mars_db”, MODE_PRIVATE, null);
执行语句
db.execSQL(sql); 可用于创建表、删除表、插入数据、删除数据等没有返回结果集的情况
插入数据时也可用db.insert( )
删除数据时也可用db.delete( )
关闭数据库
db.close();
删除数据库
db.deleteDatabase(“test_mars_db”);