在android中使用ormlite执行查询的问题

时间:2011-08-19 05:47:37

标签: android sqlite ormlite

我正在使用this programming blog上的程序来使用预先填充的sqlite表。我试图在表中插入任何行,但它始终给出SQLException:

Problems executing Android query: SELECT * FROM `user` WHERE `username`='Shadow'

这是我收到此错误的方法:

public User getByUsername(String username) {        
    try {
        QueryBuilder<User, String> qb = userDao.queryBuilder(); 
        qb.where().eq("username", username);    
        PreparedQuery<User> pq = qb.prepare();
        return userDao.queryForFirst(pq);
    } catch (SQLException e) {
        e.printStackTrace();
        return null;
    }
} 

寻求帮助......

2 个答案:

答案 0 :(得分:5)

如果没有关于您遇到的具体错误的更多信息(请在问题中添加完整的例外),我们无法真正帮助您@deepak

我会说你的代码看起来很好并且合适。我喜欢定义我在查询中使用的字段,如下所示:

@DatabaseTable(tableName = "users")
public class User @{
    public static final String USERNAME_FIELD_NAME = "username"; 

    ...
    @DatabaseField(columnName = USERNAME_FIELD_NAME)
    private String userName;
    ...

然后您的代码可能如下所示。这解决了查询和数据库模式不匹配的问题:

qb.where().eq(User.USERNAME_FIELD_NAME, username);    

如果您发布了例外情况,我会在更多帮助下编辑我的答案。

答案 1 :(得分:0)

别忘了编写实体类的默认构造函数。在我的情况下,我忘记编写构造函数,并得到相同的异常。

public User(){

}