我必须从android studio中了解一些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;
}
答案 0 :(得分:1)
Cursor是一个表示任何数据库的二维表的接口。当您尝试使用SELECT语句检索某些数据时,数据库将首先创建一个Cursor对象并将其引用返回给您。
此返回引用的指针指向第0个位置,否则在Cursor的第一个位置之前调用该位置,因此当您想要从光标中检索数据时,您必须先移动到第一个记录,这样我们才能使用moveToFirst
当您在Cursor上调用moveToFirst()方法时,它会将光标指针指向第一个位置。现在您可以访问第一条记录中的数据
上面的代码显示您正在尝试读取数据但有一些缺失的信息。
答案 1 :(得分:-1)