2011-08-19 16 views
0

我正在使用在this programming blog上找到的程序来使用预先填充的sqlite表。我试图插入任何行的表,但它总是给的SQLException:在android中执行查询使用ormlite问题

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; 
    } 
} 

寻找帮助...

+0

请问您能否发布完整的异常? – Gray

回答

5

没有关于你所得到的特定错误的详细信息(请加满例外,你的问题),我们不能真正帮助你@deepak

我会说,你的代码看起来很好FO rmed和适当的。我喜欢定义我在如下查询中使用的字段:

然后,您的代码可以如下所示。它解决了查询和数据库模式不匹配的问题:如果您发布的异常

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

,我会用更多的帮助编辑我的答案。

+0

感谢您的回复,但是当我执行daoObject.queryForAll()方法时,也会发生这种情况,并且它给出了执行Android查询的相同SQLEXCEPTION问题:SELECT * FROM'user'。 –

+0

你可以请你的问题*完整的例外*吗? – Gray

+0

我调试我的源代码,我发现StatementExecuter类的查询方法抛出SQL异常,但我不gettind它背后的原因是什么。 –

0

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

public User(){ 

}