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)