2017-10-02 16 views
0

私はDBFLowを初めて使用しています。 where句に応じて1つの行を返すaqueryを作成したいと思います。とwhereで句を見つけられないようです。DBFLow Where句のクエリ

String phone = uname_pass[0]; 
String pass = uname_pass[1]; 

List<User> userList = SQLite.select().from(User.class).where("phone ?",phone).execute(); 

は私が取得したい場所phone = uname_pass[0];password = uname_pass[1]

適切なクエリは何ですか?

答えて

1

1)同期:

List<User> userList = SQLite.select() 
        .from(User.class) 
        .where(User_Table.phone.eq(uname_pass[0], User_Table.password.eq(uname_pass[1])) 
        .queryList(); 

また、あなたは、この場合の ".AND" と(そのように書くことができますが、代わりに ".AND" の ".OR" と他の演算子を選択することができます。 )

List<User> userList = SQLite.select() 
        .from(User.class) 
        .where(User_Table.phone.eq(uname_pass[0])) 
        .and(User_Table.password.eq(uname_pass[1])) 
        .queryList(); 

2)非同期:

SQLite.select() 
    .from(User.class) 
    .where(User_Table.phone.eq(uname_pass[0]),User_Table.password.eq(uname_pass[1])) 
    .async() 
    .queryListResultCallback(new QueryTransaction.QueryResultListCallback<User>() { 
     @Override 
     public void onListQueryResult(QueryTransaction transaction, List<User> tResult) { 

     //your list will be tResult 
     } 
    }).execute();