1

このプログラミング ブログにあるプログラムを使用して、事前入力された 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;
    }
} 

助けを求めています...

4

2 に答える 2

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

例外を投稿した場合は、回答を編集してより多くの助けを借ります。

于 2011-09-06T12:47:50.503 に答える
0

エンティティ クラスのデフォルト コンストラクターを記述することを忘れないでください。私の場合、コンストラクターを書くのを忘れていて、同じ例外が発生していました。

public User(){

}
于 2014-10-28T06:01:40.777 に答える