android数据库存储-sqllite

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----");
        }

    }





你可能感兴趣的:(android)