Android 为什么where.eq(columnname,value)会给出错误的结果?
所以我使用ormlite在android中处理我的sqlite数据库。不幸的是,我使用dao.queryBuilder().where().eq().queryFirst()得到了意外的结果。 以下是我的功能:Android 为什么where.eq(columnname,value)会给出错误的结果?,android,android-sqlite,ormlite,Android,Android Sqlite,Ormlite,所以我使用ormlite在android中处理我的sqlite数据库。不幸的是,我使用dao.queryBuilder().where().eq().queryFirst()得到了意外的结果。 以下是我的功能: public static Person getByEmail(Dao<Person, ?> dao, String email) { try { Log.e("queriedEmail", email); return dao.que
public static Person getByEmail(Dao<Person, ?> dao, String email) {
try {
Log.e("queriedEmail", email);
return dao.queryBuilder().where()
.eq(Person.EMAIL_FIELD, email)
.queryForFirst();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
如果有人能指出我错在哪里,那就太棒了。谢谢 我找到了一个解决办法。queryBuilder实际上给出了错误的结果,所以我使用了ormlite而不是queryBuilder。我得到了一个解决方案。queryBuilder实际上给出了错误的结果,所以我使用了ormlite而不是queryBuilder 所以我使用ormlite在android中处理我的sqlite数据库。不幸的是,我使用dao.queryBuilder().where().eq().queryFirst()得到了意外的结果 您似乎暗示
QueryBuilder
由于某种错误而无法工作。这不是不可能的,但更有可能是您在中使用不正确。我会使用调试器来找出发生了什么。要查看生成的查询类型,还可以启用
需要调查的一些事情:
- 确保您的
Person.EMAIL\u字段符合您的期望
- 看起来您正在打印
,因此该字段应该正常,但电子邮件
空值也可能是问题所在
- 等等
QueryBuilder
由于某种错误而无法工作。这不是不可能的,但更有可能是您在中使用不正确。我会使用调试器来找出发生了什么。要查看生成的查询类型,还可以启用
需要调查的一些事情:
- 确保您的
Person.EMAIL\u字段符合您的期望
- 看起来您正在打印
,因此该字段应该正常,但电子邮件
空值也可能是问题所在
- 等等
祝您调试错误时好运。谢谢您的回答,我想知道有没有办法查看传递给查询的实际参数?我阅读了参考文件,但找不到我的答案。谢谢如果你打开跟踪日志,你也应该看到args。谢谢你的回答,先生,我想知道有没有办法看到传递给查询的实际参数?我阅读了参考文件,但找不到我的答案。谢谢如果启用跟踪日志记录,则还应该看到args。
public static Person getByEmail(MyApp app, String email) {
try {
return getByEmail(app.getDatabaseHelper().getDao(
Person.class), email);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}