2011-08-19 57 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(){ 

}