将String传递给DatabasHelper,并在查询中使用它来搜索两个表之间的平均值



对不起,我对这个有点陌生。我正在使用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);

最新更新