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

Dee*_*oel 1 sqlite android ormlite

我正在使用此编程博客上的程序来使用预先填充的sqlite表.我试图在表中插入任何行,但它总是给出SQLException:

Problems executing Android query: SELECT * FROM `user` WHERE `username`='Shadow'
Run Code Online (Sandbox Code Playgroud)

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

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;
    }
} 
Run Code Online (Sandbox Code Playgroud)

寻求帮助......

Gra*_*ray 5

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

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

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

    ...
    @DatabaseField(columnName = USERNAME_FIELD_NAME)
    private String userName;
    ...
Run Code Online (Sandbox Code Playgroud)

然后您的代码可能类似于以下内容.这解决了查询和数据库模式不匹配的问题:

qb.where().eq(User.USERNAME_FIELD_NAME, username);    
Run Code Online (Sandbox Code Playgroud)

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