Android之如何对SQLite数据库增删改查(一)

181 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

Android创建SQLite数据库之后要怎么对数据库进行增删改查呢

应该用到SQLITE里面的SQLiteDatabase的这个类来操作

例子:我创建了一个有姓名和电话号码两个值的数据库

一.增加数据

public void  add(){
    DatabaseHelper helper = new DatabaseHelper(this);
    SQLiteDatabase db =  helper.getWritableDatabase();
    ContentValues values = new ContentValues();
    String num =phone.getText().toString().trim();
    String people =Name.getText().toString().trim();
    if(!TextUtils.isEmpty(num) && !TextUtils.isEmpty(people)){
    values.put("name",people);
    values.put("phone",num);
    long id = db.insert("phone","nullColumnHack",values);
    db.close();
    Toast.makeText(this, "添加成功", Toast.LENGTH_LONG).show();
    phone.setText(null);
    }
    else {
        Toast.makeText(this, "姓名或电话为空", Toast.LENGTH_LONG).show();
    }

}

首先是打开一个SQLiteDatabase连接

然后创建一个ContentValues类 ContentValues类和Hashtable比较类似,它也是负责存储一些名值对,但是它存储的名值对当中的名是一个String类型,而值都是基本类型, 然后用ContentValues去存储我们需要添加进数据库的数据

然后使用db.insert方法去添加数据 其中重要的是这个里面有三个参数

1.第一个参数是插入的表名

2.第二个参数nullColumnHack :这是可选参数, 因为数据库表中不允许插入空数据, 如果后面的参数ContentValuesnull, 并且列的名称不存在, 那么插入操作会失败, 为了避免这种情况, 就出现了nullColumnHack参数, 为了防止 valuesnull的情况;如果为空 会插入为nullColumnHack 参数列为空的值

源码如下 仔细看就明白了 image.png

3.第三个参数就是我们需要插入到表里的数据了

二:查找数据

代码如下:

public void  findAll( ){

    DatabaseHelper helper = new DatabaseHelper(this);
    SQLiteDatabase db =  helper.getWritableDatabase();
       String sql = "select * from phone";
        Cursor cursor = db.rawQuery(sql,null);
        if (cursor.getCount() != 0) {
            while (cursor.moveToNext()) {
                String name = cursor.getString(cursor.getColumnIndex("name"));
                String phone = cursor.getString(cursor.getColumnIndex("phone"));
                Phone ph = new Phone(name,phone);
                phonelist.add(ph);
                db.close();
            }}}

首先是打开一个SQLiteDatabase连接

然后把写的SQL语句赋值到字符串里

然后用db.rawQuery(sql,null) 获取到执行的sql语句的数据存放到数据缓冲区Cursor

其中rawQuery有两个参数

1.参数1为要执行的数据库语句

2.参数2为参数1里面占位符的值,就是下面代码问号的值 ( db.rawQuery("select * from phone where  age=?", new String[]{"钟AH"}); )

最后用while循环来遍历出游标Cursor里面的值 最后关闭数据库连接