什么是光标,它在做什么(在这种情况下)?
问题描述:
我必须从android工作室了解一些java代码,但由于我是Java和android的新手,我有一个问题。什么是光标,它在做什么(在这种情况下)?
任何人都知道Cursor实际上是什么,它在这种情况下究竟做了什么?
private Movie cursorToMovie (Cursor cursor)
{
Movie movie = new Movie();
movie.setId(cursor.getInt(0));
movie.setName(cursor.getString(1));
movie.setGenre(cursor.getString(2));
movie.setYear(cursor.getInt(3));
movie.setSynopsis(cursor.getString(4));
return movie;
}
public List<Movie> getAllMovies()
{
open();
List<Movie> movieList = new ArrayList<>();
Cursor cursor = db.query(Movie.TABLE_NAME, MovieAllColumns, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast())
{
Movie movie = cursorToMovie(cursor);
movieList.add(movie);
cursor.moveToNext();
}
cursor.close();
close();
return movieList;
}
答
光标是一个接口,它表示任何数据库的二维表。当您尝试使用SELECT语句检索某些数据时,数据库将首先创建一个Cursor对象并将其引用返回给您。
返回的引用的指针指向第0个位置,该位置在光标的第一个位置之前被调用,所以当您想要从光标中取回数据时,必须先移动到第一条记录,必须使用moveToFirst
当您在Cursor上调用moveToFirst()方法时,它会将光标指针指向第一个位置。现在您可以访问第一条记录中的数据
上面的代码显示您正在尝试读取数据,但有一些缺失信息。
您添加了android-cursor标签,但未能读取其信息? –
你知道Google吗? –