Android 数据库Sqlite的使用(3)

https://blog.csdn.net/tdl081071tdy/article/details/88377515    ( Android 数据库Sqlite的使用(2)

上一篇博客中我们学习了如何插入 删除 以及修改 现在我们来学习最重要的查询

同样 在布局文件中写入一个按钮控件 

        <Button
            android:text="Api查询数据"
            android:id="@+id/btn_apiquery"
            android:layout_weight="2"
            android:onClick="click"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

在查询之前 我们先创建一个实体类person  用于存储查询的数据

public class Person {

    private String name;
    private int age;

    public Person( String name, int age) {

        this.name = name;
        this.age = age;
    }



    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }


    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }


    @Override
    public String toString() {
        return "name="+name+",age="+age;
    }
}

大家应该注意到了 这个类的名字就是我们所创建的表的表名 ,这里我们重写了tostring方法 用于返回查询结果

然后 ,我们需要在DBManger中创建一个新的方法 用于将查询结果转换为集合 ,这里我们利用游标对象遍历所返回的符合查询条件的虚拟结果集 然后将结果集中的数据存到person对象中 在将该对象存入list集合 然后将其返回

public static List<Person> CursorTolsit(Cursor cursor){
        List<Person> list = new ArrayList<>();

        /**
         * moveToNext 若返回true则表示还有下一条数据 若返回false则代表以到最后一条,读取完毕
         */
        while (cursor.moveToNext()){
            //通过字段名称获取该字段的下标
            //在通过下标获取该字段的值

            String name = cursor.getString(cursor.getColumnIndex("name"));

            int age = cursor.getInt(cursor.getColumnIndex("age"));

            Person person = new Person(name,age);
            list.add(person);
        }
        return list;
    }

现在我们可以在查询按钮中的点击事件中写入如下方法

                db = helper.getWritableDatabase();
                Cursor query = null;
                    query = db.query("person", null,
                            "name=?", new String[]{"张三"}, null, null, " age desc");
                }
                db.close();

                List<Person> list = DBManger.CursorTolsit(cursor);
                for (Person p:list){
                   Log.e("person",p.toString());
                }

这里我们可以看到 之前在DBmnger中的方法派上用场了  通过日志 我们可以打印出查询结果 当然 你们可以将它写入到textview或其他视图控件中

到此为止 我们的CURD操作便以完成 若有不足 欢迎指正 

这里列出前两篇文章

https://blog.csdn.net/tdl081071tdy/article/details/88377515Android 数据库Sqlite的使用(2)

https://blog.csdn.net/tdl081071tdy/article/details/88377267Android 数据库Sqlite的使用(1)

猜你喜欢

转载自blog.csdn.net/tdl081071tdy/article/details/88377846