对不起,我对这个有点陌生。我正在使用java构建一个android应用程序。我正试图将两个字符串传递给我的DatabaseHelper类来查询我的数据库。这是我将字符串检索到数据库助手的方法。
private void retrieveDataFromSqlite(({
String selectedYear = String.valueOf(dateViewer.getYear());
String selectedMonth = String.valueOf(dateViewer.getMonth() +1);
String selectedDay = String.valueOf(dateViewer.getDayOfMonth());
String date = (selectedYear) + '-' + (selectedMonth) + '-' + selectedDay;
String email = textViewName.getText().toString();
Data dataSetter = new Data();
dataSetter.setDate(date);
dataSetter.setEmail(email);
String x;
x = databaseHelper.viewData();
textViewSugar.setText(x);
}
这是我的数据库助手。
public String viewData(){
//String x = "No Data For That Date";
SQLiteDatabase db = this.getReadableDatabase();
Data dataGetter = new Data();
String x = dataGetter.getEmail();
//final String MY_QUERY = "SELECT AVG(data) FROM data INNER JOIN user ON data.email = user.user_email";
db.close();
return x;
}
我还有一个包含getter和setter的数据类。公共类数据{
private int data_id;
private int userId;
private int data;
private String email;
private String date;
public int getData_id(){ return data_id; }
public void setData_id(int data_id){ this.data_id = data_id;}
public int getUserId(){ return userId;}
public void setUserId(int userId){ this.userId = userId;}
public int getData(){return data;}
public void setData(int data){ this.data = data;}
public String getEmail(){return email;}
public void setEmail(String email){ this.email = email;};
public String getDate(){return date;}
public void setDate(String date){this.date = date;}
}
您正在函数viewData 中创建一个新的Data实例
public String viewData(){
Data dataGetter = new Data();
}
它与retrieveDataFromSqlite函数的Data对象没有连接。
与其在viewData函数中创建新的数据对象,不如简单地传递datagetter,然后从中获取值
public String viewData(Data dataGetter){
//String x = "No Data For That Date";
SQLiteDatabase db = this.getReadableDatabase();
String x = dataGetter.getEmail();
//final String MY_QUERY = "SELECT AVG(data) FROM data INNER JOIN user ON data.email = user.user_email";
db.close();
return x;
}
然后传递retrieveDataFromSqlite函数中的数据,如
x = databaseHelper.viewData(dataSetter);