Android 如何使用ORMlite查找表中字段的和
模型 } 数据库管理器Android 如何使用ORMlite查找表中字段的和,android,Android,模型 } 数据库管理器 public class HouseHoldIncome implements Serializable { private static final long serialVersionUID = 1299751771198967848L; @DatabaseField(generatedId = true) private int id; @DatabaseField private String incomecategory; @DatabaseFie
public class HouseHoldIncome implements Serializable {
private static final long serialVersionUID = 1299751771198967848L;
@DatabaseField(generatedId = true)
private int id;
@DatabaseField
private String incomecategory;
@DatabaseField(columnName = "date", dataType =
DataType.DATE_STRING,format = "MM-dd-yyyy")
private Date date;
@DatabaseField
private int content;
@DatabaseField
private float sum;
@DatabaseField(foreign = true,foreignAutoRefresh = true, canBeNull =
false,
index = true)
private Category category;
public HouseHoldIncome() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getContent() {
return content;
}
public void setContent(int content) {
this.content = content;
}
public float getSum() {
return sum;
}
public void setSum(float sum) {
this.sum = sum;
}
public String getIncomecategory() {
return incomecategory;
}
public void setIncomecategory(String incomecategory) {
this.incomecategory = incomecategory;
}
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
this.category = category;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
公共列表GetAllHouseholdIncome(日期从,日期
(至){
列出住户收入=新收入
ArrayList();
试一试{
Dao dahouseholdincom=
dbHelper.getDaoHouseHoldIncome();
最终日期格式df=新的简化格式(“MM dd yyyy”);
GenericRawResults行结果=
dahouseholdincom.queryRaw(“从住户收入中选择日期、金额
其中日期介于“2015年1月1日”和“2015年12月31日”之间,按日期分组“,
新的RawRowMapper(){
@凌驾
public HouseHoldIncome mapRow(字符串[]列名称,字符串[])
结果(列){
还新
住户收入(df.parse(resultColumns[0]),
parseFloat(resultColumns[1]);
}
});
rowresults.close();
}捕获(SQLE异常){
Logger.get().e(GreenAgriApp.getInstance(),
e、 getMessage());
e、 printStackTrace();
}
返还户主收入;
}
虽然在SQLite数据库浏览器中手动运行查询时返回的结果为空,但查询返回的结果为空
调试时,将显示结果的值size=0
有人能告诉我哪里出了问题吗?可能是因为您在同一列“日期”中使用了条件和分组依据。首先尝试删除group by子句。这可能是因为您在同一列“日期”上使用了条件和group by。首先尝试删除GROUPBY子句
public List<HouseHoldIncome>getAllHouseholdincome(Date from,Date
to) {
List<HouseHoldIncome> houseHoldIncomes = new
ArrayList<HouseHoldIncome>();
try {
Dao<HouseHoldIncome, String> dahouseholdincom =
dbHelper.getDaoHouseHoldIncome();
final DateFormat df = new SimpleDateFormat("MM-dd-yyyy");
GenericRawResults<HouseHoldIncome> rowresults=
dahouseholdincom.queryRaw("select date,sum(sum) from HouseHoldIncome
where date between '01-01-2015' and '12-31-2015' group by date",
new RawRowMapper<HouseHoldIncome>() {
@Override
public HouseHoldIncome mapRow(String[] columnNames, String[]
resultColumns) {
return new
HouseHoldIncome(df.parse(resultColumns[0]),
Float.parseFloat(resultColumns[1]));
}
});
rowresults.close();
} catch (SQLException e) {
Logger.get().e(GreenAgriApp.getInstance(),
e.getMessage());
e.printStackTrace();
}
return houseHoldIncomes;
}