gpt4 book ai didi

java - 无法使用查询从解析数据库中检索字符串

转载 作者:行者123 更新时间:2023-11-30 08:50:03 25 4
gpt4 key购买 nike

我正在尝试从解析对象中检索信息,但我将它们存储在其中的字符串始终等于 null。

这是我保存对象的方式

        // get current user
ParseObject studentClasses = new ParseObject("StudentClasses");

// register their periods into database
studentClasses.put("student_id", ParseUser.getCurrentUser());
studentClasses.put("first_period", ClassSelected_Period[PERIOD1]);
studentClasses.put("second_period", ClassSelected_Period[PERIOD2]);
studentClasses.put("third_period", ClassSelected_Period[PERIOD3]);
studentClasses.put("fourth_period", ClassSelected_Period[PERIOD4]);
studentClasses.put("fifth_period", ClassSelected_Period[PERIOD5]);
studentClasses.put("sixth_period", ClassSelected_Period[PERIOD6]);
studentClasses.put("seventh_period", ClassSelected_Period[PERIOD7]);

// save the information into database
studentClasses.saveInBackground();

它完美地保存了我的数据库。 student_id 是指向用户的指针,其余列是字符串。

我想检索所有这些字符串并将它们放入一个数组中,当我查询解析它们时它不起作用

这是我的问题

        // check if a user is not cached
ParseUser currentUser = ParseUser.getCurrentUser();
if (currentUser == null)
{
// prompt user to Register screen
// create intent to start activity
Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

// start new activity
startActivity(intent);

// stop current activity
finish();
}

// query database for user's classes
ParseQuery<ParseObject> query = ParseQuery.getQuery("StudentClasses");
query.whereEqualTo("student_id", ParseUser.getCurrentUser());

query.getFirstInBackground(new GetCallback<ParseObject>()
{
@Override
public void done (ParseObject parseObject, ParseException e)
{
if (e == null)
{
// retrieved the object
userClasses[PERIOD1] = parseObject.getString("first_period");
userClasses[PERIOD2] = parseObject.getString("second_period");
userClasses[PERIOD3] = parseObject.getString("third_period");
userClasses[PERIOD4] = parseObject.getString("fourth_period");
userClasses[PERIOD5] = parseObject.getString("fifth_period");
userClasses[PERIOD6] = parseObject.getString("sixth_period");
userClasses[PERIOD7] = parseObject.getString("seventh_period");
}
else
{
// failed lookup. Do something here
Toast.makeText(getApplicationContext(),"Exception Thrown" ,Toast.LENGTH_SHORT).show();
}
}
});

我查看了解析文档,它看起来应该可以工作,但它不保存字符串

感谢任何帮助或意见,谢谢!

编辑:我为查询部分展示了更多代码以显示当前用户

最佳答案

这里我假设,您的解析数据库中存储了数据..并且它工作正常..所以要检索它请尝试以下..

 ParseQuery<ParseObject> query = ParseQuery.getQuery("StudentClasses");
query.whereEqualTo("student_id", ParseUser.getCurrentUser());

query.findInBackground(new FindCallback<ParseObject>()
{
@Override
public void done (List<ParseObject> list, ParseException e)
{
if (e == null)
{
for(int i=0; i < list.size(); i++) {
userClasses[PERIOD1] = list.get(i).getString("first_period");
userClasses[PERIOD2] = list.get(i).getString("second_period");
userClasses[PERIOD3] = list.get(i).getString("third_period");
userClasses[PERIOD4] = list.get(i).getString("fourth_period");
userClasses[PERIOD5] = list.get(i).getString("fifth_period");
userClasses[PERIOD6] = list.get(i).getString("sixth_period");
userClasses[PERIOD7] = list.get(i).getString("seventh_period");
}
}
else
{
Toast.makeText(getApplicationContext(),"Exception Thrown" ,Toast.LENGTH_SHORT).show();
}
}
});

希望对您有所帮助!

关于java - 无法使用查询从解析数据库中检索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31173873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com