在用Bmob读取数据时,使用条件查询。获取到结果后可以打印objectid,但是获取里面的值为null。一遍遍的看官方文档,终于发现了问题。出现问题的环境:
public class QuestionTable extends BmobObject {
private String mquestion;
private String mresult;
private long ID;
public String getmQuestion(){
return mquestion;
}
public void setmQuestion(String mquestion){
this.mquestion=mquestion;
}
public String getmResult(){
return mresult;
}
public void setmResult(String mresult){
this.mresult=mresult;
}
public long getID(){
return ID;
}
}
数据库截图
查询语句(关键代码)
BmobQuery<QuestionTable> query = new BmobQuery<QuestionTable>();
query.addWhereEqualTo("ID", 4);
query.setLimit(20);
query.findObjects(new FindListener<QuestionTable>() {
@Override
public void done(List<QuestionTable> list, BmobException e) {
if (e == null) {
for (QuestionTable q : list) {
Log.i("TAG", "q.getObjectId()" + q.getObjectId());
Log.i("TAG", "q.getmQuestion()" + q.getmQuestion());
}
} else {
Log.i("bmob", "失败:" + e.getMessage() + "," + e.getErrorCode());
}
}
});
问题就出现在javabean类中,虽然类名与数据表明相同,但是变量名与数据库列名不同,所以就出现了能够获取到objectid,但是无法获取记录。
解决方法:修改数据库列名或者javabean类中的变量中,保持一致即可。