Проблема в выполнении запроса с использованием ormlite в Android - PullRequest
0 голосов
/ 19 августа 2011

Я использую программу, найденную в этом программном блоге для использования предварительно заполненной таблицы 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 ]

5 голосов
/ 06 сентября 2011

Без дополнительной информации о конкретной ошибке, которую вы получаете (пожалуйста, добавьте полное исключение к вашему вопросу), мы не сможем вам помочь @ 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);    

Если вы опубликуете ваше исключение, я отредактирую свой ответ с дополнительной помощью.

0 голосов
/ 28 октября 2014

Не забудьте написать конструктор по умолчанию для вашего класса сущностей.В моем случае я забыл написать конструктор и получил то же исключение.

public User(){

}
...