SQLite简介:
SQLite数据库存储是android系统提供的数据存储方式之一,
SQLite是专门为嵌入式设备设计的一款轻量级数据库,SQLite占用资源低,SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB;
遵循数据库的ACID事务 SQLite是android系统自带;
不需要单独安装,不需要用户名密码就可以使用
SQLiteDatabase的介绍
Android提供了创建和是用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。在 Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。下面是SQLiteDatabase的常用 方法。
SQLiteDatabase的常用方法
方法名称
|
方法表示含义
|
openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)
|
打开或创建数据库
|
insert(String table,String nullColumnHack,ContentValues values)
|
插入一条记录
|
delete(String table,String whereClause,String[] whereArgs)
|
删除一条记录
|
query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy)
|
查询一条记录
|
update(String table,ContentValues values,String whereClause,String[] whereArgs)
|
修改记录
|
execSQL(String sql)
|
执行一条SQL语句
|
close()
|
关闭数据库
|
用法:
s1.新建类继承SQLiteOpenHelper新建一个类(类名自定义),继承SQLiteOpenHelper,并实现构造方法、重写oncreate和onupgrade方法。
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by hufhu on 2018/3/9.
*/
public class DBHelper extends SQLiteOpenHelper {
private static String name = "test.db";
private static int version = 1;
private static String TABLE_TEST_SQL = "create table book(id integer primary key autoincrement," +
"name varchar(32),price real)";
public DBHelper(Context context) {
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TABLE_TEST_SQL);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
s2.创建SQLiteDatabase对象
1、只读模式
1
|
SQLiteDatabase sqldb = dbhelper.getReadableDatabase();
|
2、读写模式
1
|
SQLiteDatabase sqldb = dbhelper.getWritableDatabase();
|
s3.通过实现增删改查操作
private SQLiteDatabase dataHelper = null;
/**
* 数据库追加
* @param view
*/
public void addDb(View view) {
if(null == dataHelper){
DBHelper helper = new DBHelper(MainActivity.this);
dataHelper = helper.getWritableDatabase();
}
dataHelper.execSQL("insert into book(name,price) values(\"新华词典\",20.12)");
}
/**
* 数据库删除
* @param view
*/
public void delDb(View view) {
if(null == dataHelper){
DBHelper helper = new DBHelper(MainActivity.this);
dataHelper = helper.getWritableDatabase();
}
dataHelper.execSQL("delete from book");
}
/**
* 数据库修改
* @param view
*/
public void updDb(View view) {
if(null == dataHelper){
DBHelper helper = new DBHelper(MainActivity.this);
dataHelper = helper.getWritableDatabase();
}
}
/**
* 数据库查询
* @param view
*/
public void queryDb(View view) {
if(null == dataHelper){
DBHelper helper = new DBHelper(MainActivity.this);
dataHelper = helper.getWritableDatabase();
}
Cursor cursor = dataHelper.rawQuery("select * from book",null);
while (cursor.moveToNext()){
Integer id = cursor.getInt(0);
String name = cursor.getString(cursor.getColumnIndex("name"));
Double price = cursor.getDouble(cursor.getColumnIndex("price"));
Log.i("db:","---start----");
Log.i("db:","id:"+id+"name:" + name + " price:" + price);
Log.i("db:","---end----");
}
}